Я пытаюсь добавить новый столбец к нескольким фреймам данных различной длины.
Например, у меня есть три кадра данных, как показано ниже:
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
работать с моими фреймами данных, которые имеют разную длину.)