【问题标题】:Replace 0 values by using previous value in R [duplicate]使用 R 中的先前值替换 0 值 [重复]
【发布时间】:2019-10-02 18:30:26
【问题描述】:

我有一些零值,想用 R 中的前一个值替换。

X 变量:1 3 6 0 7 8 0 0 9 8 9 0 0 0 4 7 2 4

X 新变量:1 3 6 6 7 8 8 8 9 8 9 9 9 9 4 7 2 4

【问题讨论】:

  • 到目前为止您尝试过什么?你被困在哪里了?
  • 好的,我明白了,用 NA 替换元素为 0,然后我使用 zoo 包中的 na.locf 函数。
  • dplyrna_iffill 函数可能会有所帮助

标签: r replace


【解决方案1】:

您可以使用 dplyr 和 tidyr 包。

library(dplyr)
library(tidyr)

df <- data.frame(var = c(1,2,3,0,7,8,0,0,9,8,9,0,0,0,4,7,2,4))
df <- df %>% 
  dplyr::mutate(var = ifelse(var == 0, NA, var)) %>% 
  tidyr::fill(var, .direction = c("down"))
df  
> df
   var
1    1
2    2
3    3
4    3
5    7
6    8
7    8
8    8
9    9
10   8
11   9
12   9
13   9
14   9
15   4
16   7
17   2
18   4

Fill NA row with previous value iteratively in R

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-01-02
  • 1970-01-01
  • 1970-01-01
  • 2021-10-13
  • 1970-01-01
  • 2019-10-11
  • 2021-06-27
相关资源
最近更新 更多