gpt4 book ai didi

R求和数据透视表

转载 作者:行者123 更新时间:2023-12-05 09:24:32 25 4
gpt4 key购买 nike

数据框如下

id<-c(1,1,2,3,3,2)
p<-c(10,0,22,34,0,0)
df<-data.frame(id,p)

我需要一个像

这样的汇总表
id   p
1 10
2 22
3 34

这实际上是每个 id 的 p 的聚合总和。我可以用“dcast”得到这个吗?

最佳答案

您可以通过多种方式获得所需的结果,以下是其中的几种:您可以使用 splitsapply:

df <- data.frame(id, p)
sapply(split(df, df$id), function(x) sum(x$p))
1 2 3
10 22 34

或者使用 tapply 更短:

 tapply(p, id, sum)
1 2 3
10 22 34

或者您可以使用 plyr 包中的 ddply:

library(plyr)
ddply(df, .(id), function(x) sum(x$p))
id V1
1 1 10
2 2 22
3 3 34

最后你还可以使用 by:

 by(p, id, sum)
id: 1
[1] 10
------------------------------------------------------------
id: 2
[1] 22
------------------------------------------------------------
id: 3
[1] 34

关于R求和数据透视表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11627754/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com