gpt4 book ai didi

从数据框中删除只有零值的时间序列

转载 作者:行者123 更新时间:2023-12-04 12:29:53 24 4
gpt4 key购买 nike

我有一个数据框,其中包含由 uniquer 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

最佳答案

datdata.table ,那么这很容易编写和阅读:

dat[,.SD[any(value!=0)],by=id]
.SD代表数据子集。 This answer解释 .SD很好。

了解 Gabor 很好地使用了 ave ,但不要重复相同的变量名 ( DF ) 三次,如果您有很多长或相似的变量名,这可能是错字错误的来源,请尝试:
dat[ ave(value!=0,id,FUN=any) ]

这两者之间的速度差异可能取决于几个因素,包括:i) 组数 ii) 每组的大小和 iii) 实际中的列数 dat .

关于从数据框中删除只有零值的时间序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10818701/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com