14

他の変数を無視して、いくつかの変数でデータフレームを要約する必要があります。これは、折りたたみと呼ばれることもあります。たとえば、次のようなデータフレームがある場合:

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

次に、従属変数Energy〜Widgetを使用してWidgetを折りたたむと、次のようになります。

Widget Energy  
egg  25  
jap  55  

Excelでは、最も近い機能は「ピボットテーブル」である可能性があり、Pythonでそれを行う方法を考え出しました(http://alexholcombe.wordpress.com/2009/01/26/summarizing-data-by-combinations-of-変数-with-python/)、およびこれは、非常に関連性のあることを行うためにdoByライブラリを使用するRの例です(http://www.mail-archive.com/r-help@r-project.org/msg02643.html)、しかし、上記を行う簡単な方法はありますか?そしてさらに良いのは、いくつかの変数にわたって折りたたまれるプロットを作成するためにggplot2ライブラリに組み込まれているものはありますか?

4

3 に答える 3

15

aggregate要因全体を要約するために使用します。

> 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)
于 2010-04-01T05:40:29.237 に答える
5

SQLに精通している場合、データフレームを操作する別の方法は、sqldfパッケージのsqldfコマンドです。

library(sqldf)
sqldf("SELECT Widget, avg(Energy) FROM yourDataFrame GROUP BY Widget")
于 2012-06-01T06:55:41.490 に答える
1

@Jyotirmoyは、これはライブラリで実行できると述べましたplyr。これは次のようになります。

DF <- read.table(text=
"Widget Type Energy  
egg 1 20  
egg 2 30  
jap 3 50  
jap 1 60", header=TRUE)

library("plyr")
ddply(DF, .(Widget), summarise, Energy=mean(Energy))

これは

> ddply(DF, .(Widget), summarise, Energy=mean(Energy))
  Widget Energy
1    egg     25
2    jap     55
于 2012-06-01T16:57:25.407 に答える