如何在 R 資料框中根據另一個數據框中的列值來賦值?


要根據另一列的值為一列賦值,我們可以使用 `ifelse` 函式。`ifelse` 函式使用等號 (==) 檢查一個數據框中的一列的值是否與另一個數據框中另一列的值匹配,如果匹配則替換原始值,否則返回原始值。檢視下面的示例以瞭解如何操作。

示例

考慮以下資料框:

線上演示

> x1<-rpois(20,2)
> x2<-rpois(20,5)
> df1<-data.frame(x1,x2)
> df1

輸出

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

示例

線上演示

> y1<-rpois(20,2)
> y2<-rpois(20,5)
> df2<-data.frame(y1,y2)
> df2

輸出

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

如果 df1 的 x2 與 df2 的 y2 相同,則替換 df1 中 x1 的值,否則返回 df1 中的 x1:

> df1$x1<-ifelse(df1$x2==df2$y2,df2$y2,df1$x1)
> df1

輸出

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

更新於:2021年3月4日

5K+ 次瀏覽

啟動您的 職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.