我正在准备要在R中进行分析的数据帧。我可以正确地分别准备它们,但是出于明显的原因,我想将准备工作放在for循环(或apply
/ lapply
?)中。
初始代码是这样的(每个数据帧有效),其中indHab
是一个数据帧:
indHabO<-indHab[complete.cases(indHab),]
row.names(indHabO) <- indHabO$Location
indHabO[1] <- NULL
indHabOK = indHabO[,colSums(indHabO) > 0.1]
我尝试了for循环,但被卡住了。我唯一知道的是,在尝试进行某种循环之前,将所有数据帧都放在一个列表中是很明智的,
dataSets <- list(indHab, indLoc, famHab, famLoc, indicatorHab_2012,
indicatorHab_2018, indicatorLoc_2012, indicatorLoc_2018)
如何在列表中的所有数据帧上循环操作?
答案 0 :(得分:0)
多亏了r2evans,这就是我用的。
它将所有操作过的数据帧放在一个新列表中。
dataSetsOK <- lapply(dataSets, function(x) { x <- x[complete.cases(x),]; row.names(x)
<- x$Location; x[1] <- NULL; x <- x[,colSums(x) > 0.1] })