我有一个包含公司季度数据的数据框,我有两个问题:


1:我如何只为那些拥有四分之三数据的公司保留记录(公司有时会出现1,2或3个季度的数据,但我需要在整个数据框架中为每个公司提供4个季度)


2:因为我有季度数据,所以我我想在两个条件中考虑年度平均值或总和(基于变量类型)给出两个条件:年份和公司。


例如,根据四个不同的季度值,1984年的公司i将分别具有平均库存价值和总收入,分别为I1984和REV1984。我目前正在使用这些代码行 - 对于均值和求和 - 但是R保持返回“NA”并且我搜索并搜索了替代方案,但似乎没有任何效果:
&#xA;&#xA; < pre> Company i_ I1984&lt; - with(R,mean(I [FY ==“1984”&amp; Co ==“AAR CORP”]))&#xA;公司i_REV1984&lt; - with(R ,sum(REVQ [FY ==“1984”&amp; Co ==“AAR CORP”]))&#xA;
&#xA;&#xA; R是我的数据框架& #xA;我&lt; - 季度库存&#xA; REVQ&lt; - 季度收入
&#xA;&#xA;显然,当我找到每个新的平均值时,引号中的值将变为动态将值和位置放在新的 data.frame
。
任何帮助都将受到高度赞赏。谢谢
&#xA;&#xA;我在下面添加了一个示例代码:
&#xA;&#xA; company&lt; -c(“ xray“,”xray“,”xray“,”xray“,”foxrot“,”foxrot“,”delta“,”kilo“,”kilo“)&#xA; qtr&lt; -c(”1“,” 2“,”3“,”4“,”1“,”2“,”4“,”2“,”3“)&#xA;&#xA; IQ&lt; - rnorm(9,0,10) )&#xA; REVQ&lt; - rnorm(9,0,10)&#xA; AssetQ&lt; - rnorm(9,0,10)&#xA; CashQ&lt; - rnorm(9,0,10)& #xA;&#xA; #Modified dataframe&#xA; data&lt; -data.frame(company,qtr,IQ,REVQ,AssetQ,CashQ)&#xA;
&#xA;& #xA; 在这个例子中,'xray'应该是我们采用均值/求和的唯一公司。
&#xA;答案 0 :(得分:0)
关于你的第一个问题(使用下面评论中的df结构):
company<-c("xray", "xray", "xray", "xray", "foxrot", "foxrot", "delta", "kilo", "kilo" )
qtr <-c("1","2","3","4", "1", "2","4", "2","3")
IQ <- rnorm(9,0,10)
REVQ <- rnorm(9,0,10)
AssetQ <- rnorm(9,0,10)
CashQ <- rnorm(9,0,10)
#Modified dataframe
data<-data.frame(company,qtr, IQ, REVQ, AssetQ, CashQ )
#Using the dplyr package:
data.complete<-data.frame(data %>% group_by(company) %>% filter(n() == 4))
关于你的第二个问题
#Get your sum and means (note that the 'by' command will separate the sums based on the company factor when you have more than 1 company with complete data)
aggregate(data.complete[,3:6], by=list(data.complete$company), sum)
aggregate(data.complete[,3:6], by=list(data.complete$company), mean)