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

标签 r

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

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/

相关文章:

使用非默认选项运行现有函数

r - 在R中打开带有日期和时间的excel文件

r - 在 R 中按小时切割 POSIXlt 类型

r - 如何为R中的每个组选择第二行和第三行

r - 在过去 365 天窗口中执行总计的有效方法

r - 使用 ggplotly 对箱线图进行分组时不考虑分组

r - 无法让 RQuantLib 在 osx 10.9.4 下与brew安装的 quantlib 一起使用

r - R 的 data.table::fread 中的 "Select"参数

r - 在 Shiny 选项卡中使用多个 R Markdown 文件

r - 显示使用 Rscript 执行的输入