2016-08-18 3 views
-3

Как получить среднее значение для каждого столбца, каждый столбец содержит несколько значений, а число столбцов - 1000. Я не хочу использовать цикл по соображениям эффективности. Я попробовал colmeans, rowmeans.Среднее значение для каждого столбца в R

формат данных = каждый столбец со всеми строками является dataframe и все эти dataframes сохраняются в списке

For example data look like 
list_of_df=   
    col1      col2   .........coln 
v1 c(10,11,12....)  c(12,11,9....)    c(12,11,9....) 
v2 c(1,1,1,1,1,1...) c(1,1,1,1,1,1...)   c(1,1,1,1,1,1...) 
v3 c(0 ,0,1,2,3,..) c(0 ,0,2,2,2,3,..)   c(0 ,0,2,2,2,3,..) 
v4 c(date1,dat2,....) c(date1,dat2,....)   c(date1,dat2,....) 

Я хочу, чтобы вычислить среднее значение для V1 строки для каждого столбца.

Благодаря

+2

Структура этих данных не является матрицей. Пожалуйста, используйте 'dput' для вывода данных и копирования вывода в свой вопрос. – lmo

+1

Это кажется довольно странным способом хранения данных. Похоже, вам будет лучше с 3-мерным массивом. – Danny

ответ

1

Я получил решение, решение моей проблемы

meanValue=sapply(list_of_df[1,1:ncol(list_of_df)], function(x) mean(x)) 
+0

вам не нужно 'function (x) mean (x)' ... 'mean' должно быть достаточно –

+0

да, вы правы, спасибо за информацию. Мне нужно спросить еще одну вещь, если у вас есть время, вы можете посоветовать мне, как я могу приступить к этому сообщению http://stackoverflow.com/questions/38971669/when-the-column -в-а-dataframe-изменения-The-стоимость и сохранение-все-The-строки-между-т? noredirect = 1 # comment65298320_38971669 –

0

Трудно дать метод без использования вашей структуры данных dput. Но, основываясь на описании вы можете попробовать:

MeanResults <- 
    lapply(list_of_df, 
     function(dat) { 
     mean(dat["V1",]) 
     }) 

Вы можете unlist это, если вам это нужно как векторы.

Вы должны рассмотреть, если вы можете получить данные в более эффективную структуру для манипуляций, вы сэкономите время и усилия в долгосрочной перспективе :)

+0

Это решение не сработало, да, я постараюсь изменить структуру, я в основном новичок в R, и я получаю эти данные в результате, из этой проблемы, может быть, вы лучше поймете, что я делаю тогда. У меня есть решение с циклом, но я не хочу использовать это http://stackoverflow.com/questions/38971669/when-the-column-in-a-dataframe-changes-the-value-and-save-all-the -rows-between-t? noredirect = 1 # comment65298320_38971669 –

+0

Я получил ответ на проблему, мне нужно было в векторе, поэтому я применил sapply с изменением. meanValue = sapply (list_of_df [1,1: ncol (list_of_df)], функция (x) mean (x)) –