将R中具有相同条目的多行合并

将R中具有相同条目的多行合并,r,csv,R,Csv,我有如下数据 |年份| Qrtrs |类型|频率| |1950年| JAS | BS | 1| |1950年| OND | BS | 1| |1950年| OND | BS | 1| |1950年| OND | BY | 2| 我想这样生产 +------+------+-----+----+----+ | Year | Qrts | All | BS | BY | +------+------+-----+----+----+ | 1950 | JAS | 1 | 1 | 0 |

我有如下数据

|年份| Qrtrs |类型|频率|

|1950年| JAS | BS | 1|

|1950年| OND | BS | 1|

|1950年| OND | BS | 1|

|1950年| OND | BY | 2|


我想这样生产

+------+------+-----+----+----+
| Year | Qrts | All | BS | BY |
+------+------+-----+----+----+
| 1950 | JAS  |   1 |  1 |  0 |
| 1950 | OND  |   4 |  2 |  2 |
+------+------+-----+----+----+
我试着用tapply,但没有得到我想要的


谢谢大家!

您的示例数据,可复制且可用:

dat <- read.table(header=TRUE, stringsAsFactors=FALSE, text='
Year Qrtrs Month Type freq
1 1950 JAS 9 BS 1
2 1950 OND 10 BS 1
3 1950 OND 11 BS 1
4 1950 OND 12 BY 1 ')
使用
数据。表

library(data.table)
DT <- as.data.table(dat)
dcast(DT[,.(count = sum(freq)), by=c("Year", "Qrtrs", "Type")],
      Year + Qrtrs ~ Type, value.var = "count", fun=sum)[
       , All := BS+BY,][]
#    Year Qrtrs BS BY All
# 1: 1950   JAS  1  0   1
# 2: 1950   OND  2  1   3

但我已经没有时间了…

请不要发布代码/数据/错误的图像:它无法复制或搜索(SEO),它会破坏屏幕阅读器,并且可能不适合某些移动设备。参考号:。还请包括您尝试过的代码;“没有得到我想要的”既不能告诉我们(1)什么不起作用,也不能告诉我们(2)你期待什么。积云的可能复制,这是否回答了你的问题?如果这解决了你的问题,请;这样做不仅给回答者提供了一些观点,也为有类似问题的读者提供了一些结尾。(如果仍然存在问题,您可能需要编辑问题并提供更多详细信息。)
library(data.table)
DT <- as.data.table(dat)
dcast(DT[,.(count = sum(freq)), by=c("Year", "Qrtrs", "Type")],
      Year + Qrtrs ~ Type, value.var = "count", fun=sum)[
       , All := BS+BY,][]
#    Year Qrtrs BS BY All
# 1: 1950   JAS  1  0   1
# 2: 1950   OND  2  1   3
aggregate(freq ~ Year + Qrtrs + Type , data=dat, FUN=sum)