gpt4 book ai didi

r - 用先前的值填充特定数量的data.table行

转载 作者:行者123 更新时间:2023-12-02 06:48:12 24 4
gpt4 key购买 nike

我现在有一个问题。
我尝试操作的列如下所示:

> DT <- data.table(Group= c("SM", NA, NA, NA, NA, NA, "GH", NA, NA, NA, NA, NA, NA, NA))
> DT
Group
1: SM
2: <NA>
3: <NA>
4: <NA>
5: <NA>
6: <NA>
7: GH
8: <NA>
9: <NA>
10: <NA>
11: <NA>
12: <NA>
13: <NA>
14: <NA>

我想用以前的值填充NA,但只填充特定数量的行,在这种情况下,仅填充4行,这意味着所需的结果是:
    Group
1: SM
2: SM
3: SM
4: SM
5: SM
6: <NA>
7: GH
8: GH
9: GH
10: GH
11: GH
12: <NA>
13: <NA>
14: <NA>

我该如何实现?我尝试了使用na.locf(),但它没有执行我想要的操作。提前致谢

最佳答案

这是一种实现方法:

> DT[, Group := ifelse(seq_len(.N) <= 1 + 4, Group[1], Group),by = cumsum(!is.na(Group))]
> DT
Group
1: SM
2: SM
3: SM
4: SM
5: SM
6: <NA>
7: GH
8: GH
9: GH
10: GH
11: GH
12: <NA>
13: <NA>
14: <NA>

关于r - 用先前的值填充特定数量的data.table行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52245046/

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