Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何创建基于另一个变量对数值变量求和的简化数据帧?_R - Fatal编程技术网

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