R удалить последнюю неделю из временных рядов - PullRequest
1 голос
/ 07 апреля 2020

У меня есть набор данных временного ряда, который содержит столбец year, week и третье число c. Из этого набора данных я хочу удалить последнюю неделю прошлого года, поскольку она неполная.

Моя попытка:

subset(data , year== max(as.numeric(as.character(data$year))) & week == max(data$week))

Однако проблема с этим кодом заключается в том, что он возвращает пустой кадр данных, так как максимальное число недель в подмножестве максимального года не существует.

Как этого добиться?

ОБНОВЛЕНИЕ: здесь - это ссылка с образцом данных, которые я использую

1 Ответ

2 голосов
/ 07 апреля 2020

Мы могли бы arrange данные, основанные на year и week, и удалить значения week и year, которые находятся в последней строке данных.

library(dplyr)

data %>%
  type.convert(as.is = TRUE) %>%
  arrange(year, week) %>%
  filter(!(year == last(year) & week == last(week)))

Та же логика c в базе R:

data <- type.convert(with(data, order(year, week)), as.is = TRUE)
subset(data, !(year == year[nrow(data)] & week == week[nrow(data)]))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...