gpt4 book ai didi

r - 如何将列值设置为最后一个正整数

转载 作者:行者123 更新时间:2023-12-03 20:03:41 24 4
gpt4 key购买 nike

如何将列值设置为最后一个正整数?下面是一个例子:
这是一个数据框:

id <- c(1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2)
test <- c(5,6,-1,2,3,-1,-2,-3,5,-2,-1,1,1,2,-3,-3,2,3,5,4)
df1 <- data.frame(id,test)
期望的输出:
id|test
1 |5
1 |6
1 |6
1 |2
1 |3
1 |3
1 |3
1 |3
1 |5
1 |5
2 |NA
2 |1
2 |1
2 |2
2 |2
2 |2
2 |2
2 |3
2 |5
2 |4

最佳答案

我们可以replace NA 的负值并使用 fill替换 NA每个“id”具有前一个非 NA 值的元素

library(dplyr)
library(tidyr)
df1 %>%
mutate(test = replace(test, test < 0, NA)) %>%
group_by(id) %>%
fill(test)
-输出
# A tibble: 20 x 2
# Groups: id [2]
# id test
# <dbl> <dbl>
# 1 1 5
# 2 1 6
# 3 1 6
# 4 1 2
# 5 1 3
# 6 1 3
# 7 1 3
# 8 1 3
# 9 1 5
#10 1 5
#11 2 NA
#12 2 1
#13 2 1
#14 2 2
#15 2 2
#16 2 2
#17 2 2
#18 2 3
#19 2 5
#20 2 4

关于r - 如何将列值设置为最后一个正整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64016488/

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