r - R从时间序列中删除最近一周
问题描述
我有一个包含 column 和第三个数值的时间序列数据year
集week
。从这个数据集中,我想删除去年的最后一周,因为它不完整。
我的尝试:
subset(data , year== max(as.numeric(as.character(data$year))) & week == max(data$week))
但是,此代码的问题在于它返回一个空数据框,因为在最大年份的子集中不存在最大周数。
我怎样才能做到这一点?
更新:这是我正在使用的数据示例的链接
解决方案
我们可以arrange
基于和删除数据year
的week
最后一行数据的week
和year
值。
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)]))
推荐阅读
- gradle - Intellij 始终给出未解决的符号
- docker - 在 docker 上运行的 Greenplum 数据库服务消耗大量磁盘空间
- asp.net-mvc - 模型中的 HttpPostedFileBase 生成三个
- swift - 我什么时候应该使用协议来替换静态函数
- ruby-on-rails - 无法从另一个盒子访问托管在本地网络中的服务器
- python - 如何在极坐标 Matplotlib 图上添加楔形扇区
- azure - 无法运行从 BotBuilder 示例部署的机器人
- python - `__new__` 和 `__init__` 在类和对象上
- r - 如何将分隔的空格字符串转换为r中的数据框
- php - 动态谷歌地图