2016-01-27 2 views
0

Эй У меня есть некоторые данные, выглядит следующим образом:агрегат на несколько колонок

ExpNum Compound Peak Tau SS 
1  a  100 30 50 
2  a  145 23 45 
3  b  78 45 56 
4  b  45 43 23 
5  c  344 23 56 

Id хотел финансировать среднее на основе имени соединения Что я имею

Norm_Table$Norm_Peak = (aggregate(data[[3]],by=list(Compound),FUN=normalization)) 

Это нормально, и у меня есть это кодирование повторяется 3 раза, просто изменяя число данных [[x]]. Будет ли работать здесь? или цикл for?

ответ

3

dplyr решение:

library(dplyr) 
data %>% 
    group_by(Compound) %>% 
    summarize_each(funs(mean), -ExpNum) 
+1

OP может понадобиться, чтобы исключить 'ExpNum' из раствора. Я думаю, вы можете изменить это, чтобы сделать 'summaryize_each (funs (mean), -ExpNum)'. – steveb

+0

Скорее всего, да, я согласен! – Axeman

+0

Могу ли я включить ExpNum в Group_by? Таким образом, он основывается на двух факторах? Если мне нужны столбцы 3-6, можно ли использовать данные [, 3: 6]? –

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