如何在R数据框中创建包含两列相乘的列?

有时我们需要两列相乘并创建一个新列,以便可以将该相乘进一步用于分析。例如,要计算BMI,我们需要质量和高度,并且高度是平方的,因此,我们需要高度的平方。为此,我们既可以将高度乘以高度,也可以简单地将两种方法都取平方。因此,如果在R数据帧中仅具有height列,则可以将其与自身相乘。

示例

考虑以下数据帧-

> 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

以上是 如何在R数据框中创建包含两列相乘的列? 的全部内容, 来源链接: utcz.com/z/352387.html

回到顶部