【发布时间】:2016-06-30 14:23:57
【问题描述】:
我有一个包含公司季度数据的数据框,并希望在两个条件下获取所有四个季度的年平均值或总和(基于变量类型):年份和公司。
例如,公司 i 在 1984 年的平均库存价值和总收入分别为 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 是我的数据框 I
我在下面包含了示例 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
【问题讨论】:
-
你上一个问题有很多线索指向你需要去的地方;您可以调整任何方法,例如
library(dplyr) ; data %>% group_by(year, company) %>% summarise_each(funs(sum, mean), -qtr)使用文档和小插图。 -
dplyr 很神奇,谢谢@alistaire
标签: r