【发布时间】:2021-09-15 11:54:55
【问题描述】:
我有一个数据表,其中包含一堆具有开始和结束日期的条目,如下所示:
| id | start | end |
|---|---|---|
| 1 | 1958-01-03 | 1962-10-11 |
| 2 | 1961-02-23 | 2012-04-28 |
等等
我想按月计算这些项目中有多少在运行。所以我尝试这样做:
data.table(
month = seq(as.Date('1950-01-01','%Y-%m-%d'), as.Date('2021-09-01','%Y-%m-%d'), 'months'),
month_end = seq(as.Date('1950-02-01','%Y-%m-%d'), as.Date('2021-10-01', '%Y-%m-%d'), 'months') -1
) %>%
.[,count := satcat[start >= month & month_end <= end,.N]] %>%
.[]
然而,我得到的是一个错误:
Warning message in `>.default`(start, month):
“longer object length is not a multiple of shorter object length”
Warning message in `<=.default`(month_end, end):
“longer object length is not a multiple of shorter object length”
并且count 是所有行的相同数字。为什么会发生这种情况,这样做的正确方法是什么?我觉得应该有一些apply 解决方案,但我无法解决。
【问题讨论】:
标签: r data.table