Я пытался вычислить среднее значение для "Sepal.Length" "Sepal.Width" "Petal.Length" "Petal.Width"
для data(iris)
с коэффициентом "Species"
.
Я знаю, что мы можем легко сделать это с aggregate()
или apply()
семействами, но яя пытаюсь сделать это, написав функцию, которая могла бы делать то же самое.
Я пытался сделать следующее: (1) создать подмножество, разделенное на «виды» (2) вычислить среднеедля каждого столбца для подмножества (3) Объединить в одну таблицу
new_iris <- function(df) {
# Enter code here
species = levels(df$Species)
for (i in 1:length(species)) {
subdata = subset(df, Species == species[i])
means = colMeans(subdata[1:4])
}
data.frame(species,means)
}
Первой проблемой, с которой я столкнулся, была часть поднабора, которую я надеюсь зациклить, чтобы она возвращала три набора подданных.Но вместо этого он возвращает только один тип, например "virginica", когда я надеялся увидеть отдельные подмножества других типов.
Эта проблема снова связана с формированием фрейма данных.Поскольку длина не равна, это не позволяет мне создавать новый фрейм данных рассчитанных средних по видам.