1
如何替換data.tables列表中的列?用R替換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)
這是怎麼回事。基本上我需要擺脫UTF-8 enconding的:
list.ch <- lapply(ListData, "[",,"V1")
下面是一些NA來了,但它在原始數據的工作。所以不要記:
TranslList <- lapply(list.ch, function(x) try(iconv(x, "UTF-8", "ASCII//TRANSLIT")))
所以我想,以取代更正了上面的原始ListData,基本上用編碼名稱替換列V1。
matList <- lapply(ListData,as.matrix)
testMat <- lapply(lapply(matList, function(x) x[,-c(1)]),data.table)
FrameList <- mapply(cbind, TranslList, testMat)
在這混亂和不必要的操作的問題是,從V1列名更改爲一些即點[1L]] [[2L]
總之,如何在列表更換色譜柱data.tables?
我不認爲你需要函數中的最後'dt',它可能只是'lapply(data,function(dt)dt [,V1:= translit(V1)])' – nograpes
澄清它正在修改到位。 – hadley
data.table讓我的大腦流口水。它是如此美麗而強大<3 – Stefano