如何从plyr输出总结而不是长

Far*_*rel 3 each r plyr

我喜欢plyr将数据帧拆分成多个数据集然后在每个集合上执行相同操作的能力.最好的部分是它将结果显示为一个整洁紧凑的井标记表.我喜欢使用each()将一堆计算放入一行.但是,我不明白为什么在ddply参数中使用汇总函数会破坏输出并使其变长并且没有标记.看看这里看看我的意思.你能告诉我我做错了什么吗?我更喜欢使用总结.

我们先设置一个示例数据框.想象一下,你在一项研究中有60名参与者.其中20个很有趣,20个很聪明,20个很好.然后每个受试者都得到了分数.

type<-rep(c("funny","clever", "nice"),20)
score<-rnorm(60)+10
data<-data.frame(type,score)
Run Code Online (Sandbox Code Playgroud)

现在我想要一张表格,显示3种类型人群的平均分数,中位数分数,最低分数和最高分数

ddply(data,.(type), summarise, each(mean,median,min,max)(score))
Run Code Online (Sandbox Code Playgroud)

上面的行应该给出了一个很好的表(3行 - 每种类型1行,4列数据).唉,它给出了一个只有一列数字的整个长表,其中没有一个被标记.

ddply(data,.(type), function(jjkk) each(mean,median,min,max)(jjkk$score))
Run Code Online (Sandbox Code Playgroud)

上面的这条线给了我想要的东西.你能解释一下我对ddply语法的理解吗?

Ari*_*man 5

拼写出这些功能,如:

ddply(data,"type", summarise, mean=mean(score),median=median(score),max=max(score),min=min(score))
Run Code Online (Sandbox Code Playgroud)

以您想要的格式生成输出.

我认为你的问题是each()返回一个向量,它summarize()并没有真正以你想要的方式处理.