2015-05-27 4 views
3

У меня есть dataframe с 1000 столбцов и 8 строк, мне нужно вычислить строк means.I пробовал этот цикл:как вычислить средство строки в кадре данных?

final <- as.data.frame(matrix(nrow=8,ncol=1)) 
for(j in 1:8){ 
    value<- mean(dataframe[j,]) 
    final[j,]<-value 
} 

но получил следующее сообщение об ошибке:

In mean.default(df2[j, ]) : argument is not numeric or logical: returning NA

+0

Вы не упомянули, что ваши данные, но формат 1000x8 предложить это транспонированная в плане того, как таблицы обычно создаются , с наблюдениями в строках и переменных в столбцах. Вот как большинство функций обрабатывают данные и сколько операторов и объектов, включая кадры данных, работают. И если вы решите перенести свои данные, вы можете использовать 't()', а затем 'colMeans()'. – Molx

ответ

9

Используйте функцию rowMeans():

final$mean <- rowMeans(final, na.rm=TRUE) 

Обратите внимание, что вы должны избегать использования циклов для операций каждый день R. Если вы хотите перебрать все строки самостоятельно, вы можете использовать apply() функцию:

final$mean <- apply(final, 1, function(x) { mean(x, na.rm=TRUE) }) 
+0

Спасибо Тим! Это было очень полезно ... – vahab

Смежные вопросы