使用R中的上一个值替换0值
我有一些零值,希望用R中的前一个值替换 X变量:1 36 0 7 8 0 9 8 9 0 0 0 4 7 2 4使用R中的上一个值替换0值,r,replace,R,Replace,我有一些零值,希望用R中的前一个值替换 X变量:1 36 0 7 8 0 9 8 9 0 0 0 4 7 2 4 X新变量:1 3 6 6 7 8 8 8 9 9 9 4 7 2 4您可以使用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 =
X新变量:1 3 6 6 7 8 8 8 9 9 9 4 7 2 4您可以使用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
到目前为止,您尝试了什么?你卡在哪里了?好的,我知道了,用NA替换元素0,然后我使用zoo软件包中的NA.locf函数。
dplyr
的NA\u if
和fill
函数可能会有帮助哦,谢谢,我非常感谢你用所有代码给出的答案。@Minh Pham,请接受我的答案好吗?。看看这个。
> 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