Условное среднее значение, аналогичное AVERAGEIFS в Excel - PullRequest
2 голосов
/ 27 марта 2019

Я хотел бы написать код, который функционирует подобно функции AVERAGEIFS в Excel.По сути, я хотел бы взять среднее значение переменной при соблюдении определенных условий.Мне не удалось найти аналогичную проблему в Интернете, поскольку в моей ситуации требуется уникальное условие, исключающее определенные случаи.

Я пытаюсь рассчитать средний доход (TOTALREV) для каждого идентификатора судна.(VESSEL_ID) во все годы опроса (SURVEY_YEAR) - исключая текущий год опроса.Я попытался создать дополнительный столбец с именем 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...