我有一个包含公司季度数据的数据框,并希望在给出两个条件:年和公司的所有四个季度中采用年平均值或总和(基于变量类型)。
例如,1984年的公司i将根据四个不同的季度值分别具有平均库存价值和总收入,分别为Companyi_I1984和Companyi_REV1984。我目前正在使用这些代码行 - 对于均值和求和 - 但R不断返回“NA”并且我搜索并搜索了替代方案,但似乎没有任何工作:
Companyi_I1984 <- with(R, mean(I [FY == "1984" & Co == "AAR CORP" ]))
Companyi_REV1984 <- with(R, sum(REVQ [FY == "1984" & Co == "AAR CORP" ]))
R是我的数据帧 我&lt; - 季度库存 REVQ&lt; - 季度收入
我在下面提供了示例R代码供参考:
company<-c("xray", "xray", "xray", "xray", "xray", "xray", "xray", "xray", "kilo", "kilo", "kilo", "kilo" )
year <-c("1984","1984","1984","1984", "1985", "1985","1985", "1985","1984","1984","1984","1984" )
qtr <-c("1","2","3","4", "1", "2","3", "4","1", "2","3","4")
IQ <- rnorm(12,0,10)
REVQ <- rnorm(12,0,10)
AssetQ <- rnorm(12,0,10)
CashQ <- rnorm(12,0,10)
#Show dataframe
data<-data.frame( year, qtr, company, IQ, REVQ, AssetQ, CashQ )
在这个例子中,我想要'xray_1984','xray_1985'和'kilo_1984'的均值或总和。请注意同一年如何在不同公司中出现。
这是我第一个问题的第二个阶段,在这里找到: R coding: How to keep records with 4 complete quarters of data
任何帮助都将受到高度赞赏。谢谢~M
答案 0 :(得分:0)
我们可以使用data.table
。转换&#39; data.frame&#39;到&#39; data.table&#39; (setDT(data)
),按&#39;年&#39;&#39;公司&#39;分组,我们遍历.SD
中指定的列(.SDcols
),获取<{1}}和sum
以及sd
以获得预期的输出。
unlist