在for循环中处理数据帧列表

时间:2019-05-03 09:19:50

标签: r dataframe for-loop data-manipulation

我正在准备要在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)

如何在列表中的所有数据帧上循环操作?

1 个答案:

答案 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] })