Ale*_*mbe 14 pivot-table r ggplot2
我需要通过一些变量来总结数据框,忽略其他变量.这有时被称为崩溃.例如,如果我有这样的数据帧:
Widget Type Energy
egg 1 20
egg 2 30
jap 3 50
jap 1 60
Run Code Online (Sandbox Code Playgroud)
然后由Widget折叠,使用Energy的因变量Energy~Widget会产生
Widget Energy
egg 25
jap 55
Run Code Online (Sandbox Code Playgroud)
在Excel中,最接近的功能可能是"数据透视表",我已经研究了如何在python中实现它(http://alexholcombe.wordpress.com/2009/01/26/summarizing-data-by-combinations-of-变量 -with -python /),这是R使用doBy库做一些非常相关的事情的例子(http://www.mail-archive.com/r-help@r-project.org/msg02643.html),但有一个简单的方法来做到这一点?甚至更好的是ggplot2库中是否有任何内容可以创建在某些变量中崩溃的图?
Jyo*_*rya 14
使用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
Run Code Online (Sandbox Code Playgroud)
为了更加灵活,请查看tapply
功能和plyr
包.
在ggplot2
使用stat_summary
中总结
qplot(V1,V3,data=df,stat="summary",fun.y=mean,geom='bar',width=0.4)
Run Code Online (Sandbox Code Playgroud)
对于熟悉SQL的人来说,操作数据帧的另一种方法可以是sqldf包中的sqldf命令.
library(sqldf)
sqldf("SELECT Widget, avg(Energy) FROM yourDataFrame GROUP BY Widget")
Run Code Online (Sandbox Code Playgroud)