【发布时间】:2018-11-12 23:58:15
【问题描述】:
我正在尝试向具有不同长度的多个数据框添加新列。
例如,我有如下三个数据框:
iris1 <- iris[iris$Species=="setosa" & iris$Petal.Width == 0.2,]
iris2 <- iris[iris$Species=="versicolor",]
iris3 <- iris[iris$Species=="virginica",]
我可以使用以下行向单个数据框添加一列:
iris1$Sepal <- rowMeans(iris1[, c("Sepal.Length", "Sepal.Width")], na.rm = T)
所以我尝试编写一个for 循环来为多个数据帧重复此操作,如下所示,但它只是创建了一个新的数据帧i,我无法确定编写正确的循环。
iris.list <- list(iris1, iris2, iris3)
for (i in iris.list) {
i$Sepal <- rowMeans(i[, c("Sepal.Length", "Sepal.Width")], na.rm = T)
}
(我在 StackOverflow 上搜索并注意到人们还建议尽可能使用 apply 而不是 for 循环,但无法让 apply 处理我的具有不同长度的数据帧。)
【问题讨论】: