Я пытался выполнить упражнение «вычислить среднее значение каждого столбца в mtcars». Я знаю, что самый простой способ - это использовать colmeans()
colMeans(mtcars)
но я все еще хочу выяснить путь с помощью цикла for. Вот мой код, но не работает. Я пытался много раз, но не могу найти ошибку (довольно расстраивает ...).
Ваш ответ будет высоко оценен. Спасибо.
for (i in c(1:11)) { #mtcars has 11 columns
y1<-mean(mtcars[,i])
y2<-c(y1,y2)
}
y2
Kate
Большое спасибо за ответы.
Следуя онлайн-комментариям, я обновил код следующим образом:
y2<-numeric()
for (i in seq_along(mtcars)) {
y1<-mean(mtcars[,i])
y2<-c(y1,y2)
}
y2
[1] 2.812500 3.687500 0.406250 0.437500 17.848750 3.217250
[7] 3.596563 146.687500 230.721875 6.187500 20.090625
При использовании colMeans () ...
colMeans(mtcars)
mpg cyl disp hp drat wt qsec
20.090625 6.187500 230.721875 146.687500 3.596563 3.217250 17.848750
vs am gear carb
0.437500 0.406250 3.687500 2.812500
Интересно, что список полностью обратный (по сравнению с кодом в первой части). Тогда я обнаружил проблему в y2 <-c (y1, y2)
если я изменю оригинал y2 <-c (y1, y2) на ... </p>
y2<-c(y2,y1)
Финальная версия ....
y2<-numeric()
for (i in seq_along(mtcars)) {
y1<-mean(mtcars[,i])
y2<-c(y2,y1)
}
y2
[1] 20.090625 6.187500 230.721875 146.687500 3.596563 3.217250
[7] 17.848750 0.437500 0.406250 3.687500 2.812500
Этот результат окончательно совпал с результатами в colMeans () !!
Еще раз всем спасибо за помощь !!
Kate