r - 对 yearmon 对象进行子集化
问题描述
我有月度数据
library(zoo); library(data.table)
dat <- data.table(month=as.yearmon(paste0("2019-0",1:9)))
> dat
month
1: Jan 2019
2: Feb 2019
3: Mrz 2019
4: Apr 2019
5: Mai 2019
6: Jun 2019
7: Jul 2019
8: Aug 2019
9: Sep 2019
我想将其细分为 2019 年 5 月之后的几个月。而
dat[month=="Jun 2019"]
作品,
> dat[month > "May 2019"]
Empty data.table (0 rows and 1 cols): month
> dat[month%in%c("Jun 2019","Jul 2019")]
Empty data.table (0 rows and 1 cols): month
不要。有诀窍吗?
解决方案
实际上它确实有效。修复我们的双引号:
library(data.table)
library(zoo)
dat <- data.table(month=as.yearmon(paste0("2019-0",1:9), "%Y-%m"))
dat[month > "May 2019"]
## month
## 1: Jun 2019
## 2: Jul 2019
## 3: Aug 2019
## 4: Sep 2019
语言
比较将使用当前有效的语言。例如,如果我们将当前会话设置为法语:
Sys.setlocale(locale = "French")
dat[ month > "mai 2019" ]
## month
## 1: juin 2019
## 2: juil. 2019
## 3: août 2019
## 4: sept. 2019
我们也可以通过使用月份数字而不是名称以独立于语言的方式来做到这一点:
dat[ month > "2019-05" ]
## month
## 1: Jun 2019
## 2: Jul 2019
## 3: Aug 2019
## 4: Sep 2019
笔记
这样做足以创建示例:
dat <- data.table(month = as.yearmon(paste0("2019-", 1:9)))
推荐阅读
- c# - C# - 实例化一个返回 JSON 对象的类
- c# - 开发人员如何保持参考大量不同的实体预制件?
- reactjs - 在调整大小时重新排列反应组件
- flask - flask login_required 下一个参数不起作用
- php - Symfony 4 在新的开发项目中,简单的身份验证失败并出现错误“由于系统问题无法处理身份验证请求”
- mysql - 在 HAVING 子句中使用 MAX/MIN 优化查询
- sql - 如何通过相关表上的列的总和对 SELECT 查询进行排序?
- algorithm - 为什么我不断获得 POJ 1984 的 TLE - Navigation Nightmare?
- javascript - 在图像接近顶部/底部边缘时添加滚动,简单明了的 JS 解决方案?
- c# - 无法模拟 unitOfWork 并且没有服务接口