如何用 R 数据框列中的下一个位置出现的第一个非零替换零?
要将零替换为R数据框列中下一个位置出现的第一个非零,我们可以按照以下步骤操作-
首先,创建一个数据框。
然后,使用na.locfzoo包的函数将零替换为数据框列中下一个位置出现的第一个非零。
创建数据框
例子
让我们创建一个数据框,如下所示-
> x<-sample(0:5,20,replace=TRUE) > df<-data.frame(x) > df
执行时,上述脚本生成以下内容output(thisoutputwillvaryonyoursystemduetorandomization)-
输出
x 1 5 2 4 3 2 4 2 5 5 6 4 7 1 8 1 9 5 10 4 11 2 12 4 13 0 14 2 15 3 16 1 17 0 18 2 19 3 20 4
用下一个位置出现的第一个非零替换零
例子
使用na.locfzoo包的函数将零替换为df列x中下一个位置出现的第一个非零-
> library(zoo) > df$x<-na.locf(with(df,ifelse(x==0,NA_real_,x)),fromLast=TRUE) > df
输出
x 1 5 2 4 3 2 4 2 5 5 6 4 7 1 8 1 9 5 10 4 11 2 12 4 13 2 14 2 15 3 16 1 17 2 18 2 19 3 20 4