如何在 R 資料框列中用下一個位置的第一個非零值替換零?


為了用資料框列中下一個位置的第一個非零值替換零,我們可以按照以下步驟操作:

  • 首先,建立一個數據框。
  • 然後,使用 zoo 包中的 na.locf 函式將資料框列中零替換為下一個位置的第一個非零值。

建立資料框

讓我們建立一個如下所示的資料框:

 線上演示

> x<-sample(0:5,20,replace=TRUE)
> df<-data.frame(x)
> 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 0
14 2
15 3
16 1
17 0
18 2
19 3
20 4

用下一個位置的第一個非零值替換零

使用 zoo 包的 na.locf 函式在 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

更新於:2021年8月13日

196 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始
廣告