如何在 R 資料框中建立一個包含兩列乘積的新列?


有時我們需要將兩列相乘並建立一個新列,以便將乘積進一步用於分析。例如,要計算 BMI,我們需要質量和身高,並且身高需要平方,因此我們需要計算身高的平方。為此,我們可以將身高乘以身高,或者直接取平方,兩種方法都可以。因此,如果 R 資料框中只有身高列,則可以將其自身相乘。

示例

考慮以下資料框:

線上演示

> set.seed(957)
> x<-rpois(20,1)
> y<-rpois(20,5)
> z<-rpois(20,3)
> df<-data.frame(x,y,z)
> df

輸出

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

建立包含不同列乘積的新列:

示例

線上演示

> df$xy<-df$x*df$y
> df

輸出

x y z xy
1 0 1 3 0
2 0 7 3 0
3 0 6 7 0
4 3 7 3 21
5 1 3 7 3
6 0 3 4 0
7 1 3 5 3
8 0 4 2 0
9 0 5 0 0
10 0 4 3 0
11 0 3 7 0
12 0 8 3 0
13 1 7 5 7
14 1 5 5 5
15 1 10 7 10
16 0 5 3 0
17 0 7 2 0
18 0 5 4 0
19 0 4 4 0
20 0 5 2 0

示例

線上演示

> df$xz<-df$x*df$z
> df

輸出

x y z xy xz
1 0 1 3 0 0
2 0 7 3 0 0
3 0 6 7 0 0
4 3 7 3 21 9
5 1 3 7 3 7
6 0 3 4 0 0
7 1 3 5 3 5
8 0 4 2 0 0
9 0 5 0 0 0
10 0 4 3 0 0
11 0 3 7 0 0
12 0 8 3 0 0
13 1 7 5 7 5
14 1 5 5 5 5
15 1 10 7 10 7
16 0 5 3 0 0
17 0 7 2 0 0
18 0 5 4 0 0
19 0 4 4 0 0
20 0 5 2 0 0

示例

線上演示

> df$yz<-df$y*df$z
> df

輸出

x y z xy xz yz
1 0 1 3 0 0 3
2 0 7 3 0 0 21
3 0 6 7 0 0 42
4 3 7 3 21 9 21
5 1 3 7 3 7 21
6 0 3 4 0 0 12
7 1 3 5 3 5 15
8 0 4 2 0 0 8
9 0 5 0 0 0 0
10 0 4 3 0 0 12
11 0 3 7 0 0 21
12 0 8 3 0 0 24
13 1 7 5 7 5 35
14 1 5 5 5 5 25
15 1 10 7 10 7 70
16 0 5 3 0 0 15
17 0 7 2 0 0 14
18 0 5 4 0 0 20
19 0 4 4 0 0 16
20 0 5 2 0 0 10

更新於: 2021年1月4日

2K+ 瀏覽量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.