R 如何创建基于另一个变量对数值变量求和的简化数据帧?
例如,如果我有表格:R 如何创建基于另一个变量对数值变量求和的简化数据帧?,r,R,例如,如果我有表格: ID X Year 1 2.5 1990 2 3.5 1991 3 4.0 1990 4 4.5 1991 如何创建一个新的缩减表,按年度汇总X Year X 1990 6.5 1991 8.0 谢谢 将data.table用于此类工作: 步骤0:数据创建 df <- data.frame(x=((5:9)/2)[-2],year=rep(1990:1991,2)) 步骤2:按年度执行求和:
ID X Year
1 2.5 1990
2 3.5 1991
3 4.0 1990
4 4.5 1991
如何创建一个新的缩减表,按年度汇总X
Year X
1990 6.5
1991 8.0
谢谢 将data.table用于此类工作: 步骤0:数据创建
df <- data.frame(x=((5:9)/2)[-2],year=rep(1990:1991,2))
步骤2:按年度执行求和:
df[,sum(x),by=year]
有关更多详细信息,请阅读data.table。它们有大量的文档。
dplyr
也可用于大型数据集
library(dplyr)
df%>% group_by(year) %>% summarize(X=sum(x))
# year X
#1 1990 6.5
#2 1991 8.0
你试过什么吗?或者至少使用谷歌?或者阅读一些教程?这是一个非常基本的问题,我可以想出至少3种在BaseR中使用的不同方法,以及另外4-5种使用外部包的方法。如果你不知道如何使用“谷歌”,让我来帮你。试着在搜索窗口中键入“聚合数据r”我确实试着在我的查询中用谷歌搜索主题,但没有走多远,但我想我的问题是,我甚至不知道在谷歌中搜索什么关键字。我认为“聚合”将帮助我通过谷歌搜索取得进步。我还根据一些可能尝试做一些不同的事情但不起作用的示例,尝试了Reforme2中的dcast。但是谢谢你让我走上正轨。谢谢!我尝试了使用数据框进行聚合和按照您的建议对数据表进行求和,两种方法都有效。我使用的数据集非常大,我注意到后一种方法似乎工作得更快。data.table大大提升了大型数据集的性能,最高可达10倍。很高兴它起作用了。
library(dplyr)
df%>% group_by(year) %>% summarize(X=sum(x))
# year X
#1 1990 6.5
#2 1991 8.0