У меня есть фрейм данных, который содержит некоторые необработанные данные. Давайте возьмем пример и используем образец данных «ирис».
# load a data sample
data("iris")
# Sepal.Length Sepal.Width Petal.Length Petal.Width Species
#1 5.1 3.5 1.4 0.2 setosa
#2 4.9 3.0 1.4 0.2 setosa
#3 4.7 3.2 1.3 0.2 setosa
# ...
У меня есть другой фрейм данных, который содержит обобщенные данные о виде.
species <- data.frame(unique(iris$Species))
colnames(species) <- "s"
# Add a zoom level
species$zoom <- c(2,3,5)
# species zoom
# 1 setosa 2
# 2 versicolor 3
# 3 virginica 5
Я хотел бы добавить к этому обобщенному фрейму данных (в этом примере он называется species
) вычисляемый столбец.
Я пробовал оба
species$mean <- species$zoom * mean(iris$Sepal.Length)
# (AND)
species$mean <- species$zoom * mean(iris$Sepal.Length[iris$Species==species$s])
но первый не работает, потому что он выполняет вычисления по всем необработанным данным, он не группируется по видам. Второй тоже не работает.
Могу ли я сделать это без зацикливания строк?