与Excel中的AVERAGEIFS相似的条件均值

时间:2019-03-27 20:40:00

标签: r

我想编写类似于Excel中AVERAGEIFS函数的代码。本质上,在满足某些条件的情况下,我想取一个变量的平均值。鉴于我的情况要求排除某些情况的特殊情况,因此我未能在网上成功找到类似的问题。

我要完成的工作是计算所有调查年份(SURVEY_YEAR)中每个船舶ID(VESSEL_ID)的总收入平均值(TOTALREV)-不包括当前调查年份。我尝试创建一个名为YEAR的附加列来创建一个条件“不等于”以及我的代码当前所描述的。

CPTWG <- CEEDCdatEXP[,c("VESSEL_ID","SURVEY_YEAR","TOTALREV")] %>%
  group_by(VESSEL_ID) %>%
  summarize(AVERAGEREV = mean(TOTALREV[SURVEY_YEAR != SURVEY_YEAR]))

这段代码应该可以创造出我理想的结果:

VESSEL_ID <- c(1,2,3,1,2,3,1,2,3)
SURVEY_YEAR <- c(2009,2009,2009,2010,2010,2010,2011,2011,2011)
TOTALREV <- c(2718,9939,4014,7019,2016,2025,3218,7727,7252)
AVERAGEREV <- c(5118.5,4871.5,4638.5,2968,8833,5633,4868.5,5977.5,3019.5)
mydata <- data.frame(VESSEL_ID,SURVEY_YEAR,TOTALREV,AVERAGEREV)

0 个答案:

没有答案