R从时间序列中删除最近一周

R从时间序列中删除最近一周,r,R,我有一个时间序列数据集,其中包含一列年,周和第三个数值。 从这个数据集中,我想删除去年的最后一周,因为它是不完整的 我的尝试: subset(data , year== max(as.numeric(as.character(data$year))) & week == max(data$week)) 但是,这段代码的问题是,它返回一个空数据帧,因为最大年份子集中的最大周数不存在 我怎样才能做到这一点 更新:是与我正在使用的数据样本的链接我们可以根据年和周排列数据,并删除数据最后一行的

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

我的尝试:

subset(data , year== max(as.numeric(as.character(data$year))) & week == max(data$week))
但是,这段代码的问题是,它返回一个空数据帧,因为最大年份子集中的最大周数不存在

我怎样才能做到这一点


更新:是与我正在使用的数据样本的链接

我们可以
根据
排列
数据,并删除数据最后一行的

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)]))

数据你能在问题中粘贴一些样本数据,这样我就可以提供一个可复制的答案吗?是的,就这么做了!很好的解决方案。你能详细说明为什么需要
type.convert(as.is=TRUE)
吗?在理想情况下,应该不需要它,但我认为OP的数据具有
year
和/或
week
数据作为字符<代码>类型。转换
将其更改为数字。