首页 > 解决方案 > R从时间序列中删除最近一周

问题描述

我有一个包含 column 和第三个数值的时间序列数据yearweek。从这个数据集中,我想删除去年的最后一周,因为它不完整。

我的尝试:

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

但是,此代码的问题在于它返回一个空数据框,因为在最大年份的子集中不存在最大周数。

我怎样才能做到这一点?

更新:是我正在使用的数据示例的链接

标签: r

解决方案


我们可以arrange基于和删除数据yearweek最后一行数据的weekyear值。

library(dplyr)

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

基本 R 中的相同逻辑:

data <- type.convert(with(data, order(year, week)), as.is = TRUE)
subset(data, !(year == year[nrow(data)] & week == week[nrow(data)]))

推荐阅读