如果 R 資料框中的值大於某個特定值,則替換所有這些值。


如果要替換 R 資料框中所有大於某個特定值的值,我們可以使用 apply 函式和 ifelse 函式。

例如,如果我們有一個名為 df 的資料框,並且我們希望將 df 中所有大於 10 的值替換為 5,那麼我們可以使用以下命令:

df[]<-apply(df,2,function(x) ifelse(x0,1,x))

示例 1

以下程式碼片段建立了一個示例資料框:

x1<-rpois(20,1)
x2<-rpois(20,1)
x3<-rpois(20,1)
df1<-data.frame(x1,x2,x3)
df1

建立了以下資料框

 x1 x2 x3
 1 1 0 1
 2 1 0 0
 3 1 1 0
 4 2 1 1
 5 0 0 0
 6 0 0 0
 7 1 2 1
 8 2 0 0
 9 1 0 2
10 0 1 1
11 3 1 0
12 0 1 1
13 3 0 0
14 2 0 1
15 0 1 2
16 1 0 1
17 0 3 1
18 0 0 1
19 1 2 1
20 0 1 1

要在上面建立的資料框中將 df1 中所有大於 0 的值替換為 1,請將以下程式碼新增到上述程式碼片段中:

x1<-rpois(20,1)
x2<-rpois(20,1)
x3<-rpois(20,1)
df1<-data.frame(x1,x2,x3)
df1[]<-apply(df1,2,function(x) ifelse(x0,1,x))
df1

輸出

如果您將以上所有程式碼片段作為單個程式執行,它將生成以下輸出:

    x1 x2 x3
 [1,] 1 0 1
 [2,] 1 0 0
 [3,] 1 1 0
 [4,] 1 1 1
 [5,] 0 0 0
 [6,] 0 0 0
 [7,] 1 1 1
 [8,] 1 0 0
 [9,] 1 0 1
[10,] 0 1 1
[11,] 1 1 0
[12,] 0 1 1
[13,] 1 0 0
[14,] 1 0 1
[15,] 0 1 1
[16,] 1 0 1
[17,] 0 1 1
[18,] 0 0 1
[19,] 1 1 1
[20,] 0 1 1

示例 2

以下程式碼片段建立了一個示例資料框:

y1<-round(rnorm(20),1)
y2<-round(rnorm(20),1)
y3<-round(rnorm(20),1)
df2<-data.frame(y1,y2,y3)
df2

建立了以下資料框

     y1   y2   y3
 1 -0.9 -0.2 -1.0
 2  0.8  0.0  0.0
 3 -0.2  0.6 -1.2
 4 -0.5  0.5  1.2
 5  1.1  1.2  1.2
 6 0.2  -1.2  0.4
 7 -2.2 -0.4  1.6
 8 -0.7  0.0 -0.2
 9 -0.4  1.1 -1.7
10  0.0 -1.0  0.6
11  0.1 -1.3 -0.1
12  0.7  0.0 -2.2
13  0.8 -0.1  0.5
14 -1.1 -0.3 -1.2
15 -0.4  1.3 -0.5
16  1.7  0.0 -0.3
17 -0.4 -2.4 -0.9
18 -0.5  2.1  0.6
19  0.2  1.1 -1.7
20 -0.3  0.1 -0.7

要在上面建立的資料框中將 df2 中所有大於 0.1 的值替換為 0.5,請將以下程式碼新增到上述程式碼片段中:

y1<-round(rnorm(20),1)
y2<-round(rnorm(20),1)
y3<-round(rnorm(20),1)
df2<-data.frame(y1,y2,y3)
df2[]<-apply(df2,2,function(x) ifelse(x0.1,0.5,x))
df2

輸出

如果您將以上所有程式碼片段作為單個程式執行,它將生成以下輸出:

     y1    y2  y3
 1 -0.9 -0.2 -1.0
 2  0.5  0.0  0.0
 3 -0.2  0.5 -1.2
 4 -0.5  0.5  0.5
 5  0.5  0.5  0.5
 6  0.5 -1.2  0.5
 7 -2.2 -0.4  0.5
 8 -0.7  0.0 -0.2
 9 -0.4  0.5 -1.7
10  0.0 -1.0  0.5
11  0.1 -1.3 -0.1
12  0.5  0.0 -2.2
13  0.5 -0.1  0.5
14 -1.1 -0.3 -1.2
15 -0.4  0.5 -0.5
16  0.5  0.0 -0.3
17 -0.4 -2.4 -0.9
18 -0.5  0.5  0.5
19  0.5  0.5 -1.7
20 -0.3  0.1 -0.7

更新時間: 2021-11-09

2K+ 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.