用R替换data.tables列表中的列

用R替换data.tables列表中的列,r,data.table,lapply,R,Data.table,Lapply,如何替换data.tables列表中的列 以下是我掌握的大约数据: data1 <- data.table(V1=c("Mžn","Tue","Wžd","Thř","Fr"),a2012=rnorm(5),a2011=rexp(5,2)) data2 <- data.table(V1=c("Mžn","Tue","Wžd","Thř","Fr"),a2012=rnorm(5),a2011=rexp(5,2),a2010=rbinom(5,2,0.3)) ListData <-

如何替换data.tables列表中的列

以下是我掌握的大约数据:

data1 <- data.table(V1=c("Mžn","Tue","Wžd","Thř","Fr"),a2012=rnorm(5),a2011=rexp(5,2))
data2 <- data.table(V1=c("Mžn","Tue","Wžd","Thř","Fr"),a2012=rnorm(5),a2011=rexp(5,2),a2010=rbinom(5,2,0.3))
ListData <- list(data1,data2)

data1看来你让自己的生活很艰难。一个简单的
lappy()
可以:

library(data.table)

wday <- c("Mžn","Tue","Wžd","Thř","Fr")
data1 <- data.table(V1 = wday, a2012 = rnorm(5), a2011 = rexp(5,2))
data2 <- data.table(V1 = wday, a2012 = rnorm(5), a2011 = rexp(5,2),
  a2010 = rbinom(5,2,0.3))
data <- list(data1, data2)

translit <- function(x) iconv(x, "UTF-8", "ASCII//TRANSLIT", sub = "byte")

invisible(lapply(data, function(dt) {
  dt[, V1 := translit(V1)]
}))
data
库(data.table)

wday看来你让自己的生活很艰难。一个简单的
lappy()
可以:

library(data.table)

wday <- c("Mžn","Tue","Wžd","Thř","Fr")
data1 <- data.table(V1 = wday, a2012 = rnorm(5), a2011 = rexp(5,2))
data2 <- data.table(V1 = wday, a2012 = rnorm(5), a2011 = rexp(5,2),
  a2010 = rbinom(5,2,0.3))
data <- list(data1, data2)

translit <- function(x) iconv(x, "UTF-8", "ASCII//TRANSLIT", sub = "byte")

invisible(lapply(data, function(dt) {
  dt[, V1 := translit(V1)]
}))
data
库(data.table)

wday我认为你不需要函数中的最后一个
dt
,它可以是
lappy(数据,函数(dt)dt[,V1:=translit(V1)])
说明它正在修改。data.table让我的大脑流口水。它是如此的漂亮和强大,我不认为你需要函数中最后的
dt
,它可能只是
lapply(数据,函数(dt)dt[,V1:=translit(V1)])
澄清了它正在修改。data.table让我的大脑流口水。它是如此美丽而强大
matList <- lapply(ListData,as.matrix)
testMat <- lapply(lapply(matList, function(x) x[,-c(1)]),data.table)

FrameList <- mapply(cbind, TranslList, testMat)
library(data.table)

wday <- c("Mžn","Tue","Wžd","Thř","Fr")
data1 <- data.table(V1 = wday, a2012 = rnorm(5), a2011 = rexp(5,2))
data2 <- data.table(V1 = wday, a2012 = rnorm(5), a2011 = rexp(5,2),
  a2010 = rbinom(5,2,0.3))
data <- list(data1, data2)

translit <- function(x) iconv(x, "UTF-8", "ASCII//TRANSLIT", sub = "byte")

invisible(lapply(data, function(dt) {
  dt[, V1 := translit(V1)]
}))
data