【发布时间】:2025-12-29 23:25:07
【问题描述】:
我有一个数据框,其中包含由唯一 ID 标识的多个时间序列。我想删除任何只有 0 个值的时间序列。
数据框如下,
id date value
AAA 2010/01/01 9
AAA 2010/01/02 10
AAA 2010/01/03 8
AAA 2010/01/04 4
AAA 2010/01/05 12
B 2010/01/01 0
B 2010/01/02 0
B 2010/01/03 0
B 2010/01/04 0
B 2010/01/05 0
CCC 2010/01/01 45
CCC 2010/01/02 46
CCC 2010/01/03 0
CCC 2010/01/04 0
CCC 2010/01/05 40
我希望删除任何只有 0 个值的时间序列,以便数据框如下所示,
id date value
AAA 2010/01/01 9
AAA 2010/01/02 10
AAA 2010/01/03 8
AAA 2010/01/04 4
AAA 2010/01/05 12
CCC 2010/01/01 45
CCC 2010/01/02 46
CCC 2010/01/03 0
CCC 2010/01/04 0
CCC 2010/01/05 40
这是对上一个问题的跟进,该问题使用data.tables 包得到了非常好的解决方案。
R efficiently removing missing values from the start and end of multiple time series in 1 data frame
【问题讨论】:
-
数据框 id 是否总是排序的?
-
@Fhnuzoag 我按 id 和 date 对数据框进行了排序
-
如果数据框已经排序,那么可能有比 ave 方法更快的方法。但这可能不值得。
标签: r dataframe data.table time-series