R编码:如何在数据帧中采用具有多个条件的条件和/均值

时间:2016-06-30 05:39:04

标签: r

我有一个包含公司季度数据的数据框,并希望在给出两个条件:年和公司的所有四个季度中采用年平均值或总和(基于变量类型)。

例如,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

1 个答案:

答案 0 :(得分:0)

我们可以使用data.table。转换&#39; data.frame&#39;到&#39; data.table&#39; (setDT(data)),按&#39;年&#39;&#39;公司&#39;分组,我们遍历.SD中指定的列(.SDcols),获取<{1}}和sum以及sd以获得预期的输出。

unlist