Как я могу свернуть кадр данных некоторыми переменными, беря средний через других

Я должен суммировать кадр данных некоторыми переменными, игнорируя другие. Это иногда упоминается как сворачивание. Например, если у меня есть кадр данных как это:

Widget Type Energy  
egg 1 20  
egg 2 30  
jap 3 50  
jap 1 60

Затем выходя из строя Виджетом, с энергией зависимая переменная, Energy~Widget, уступила бы

Widget Energy  
egg  25  
jap  55  

В Excel самой близкой функциональностью могли бы быть "Сводные таблицы", и я разработал, как сделать это в Python (http://alexholcombe.wordpress.com/2009/01/26/summarizing-data-by-combinations-of-variables-with-python/), и здесь являюсь примером с R, использующим doBy библиотека, чтобы сделать что-то очень связанное (http://www.mail-archive.com/r-help@r-project.org/msg02643.html), но являюсь там простым способом сделать вышеупомянутое? И еще лучше есть ли что-либо встроенное в ggplot2 библиотеку для создания графиков, которые выходят из строя через некоторые переменные?

14
задан landroni 31 July 2014 в 18:19
поделиться

1 ответ

Используйте агрегат для суммирования по фактору:

> df<-read.table(textConnection('
+ egg 1 20
+ egg 2 30
+ jap 3 50
+ jap 1 60'))
> aggregate(df$V3,list(df$V1),mean)
  Group.1  x
1     egg 25
2     jap 55

Для большей гибкости просмотрите функцию tapply и пакет plyr .

В ggplot2 используйте stat_summary , чтобы подвести итог

qplot(V1,V3,data=df,stat="summary",fun.y=mean,geom='bar',width=0.4)
14
ответ дан 1 December 2019 в 13:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: