如何按顺序将向量值与 R 中数据帧的列相乘?

要将向量值与 R 中的数据框列按顺序相乘,我们可以按照以下步骤操作 -

  • 首先,创建一个数据框。

  • 然后,创建一个向量。

  • 之后,使用 t 函数进行转置和乘号 * 将向量值与数据框列按顺序相乘。

示例 1

创建数据框

让我们创建一个数据框,如下所示 -

x1<-rpois(25,2)

x2<-rpois(25,2)

x3<-rpois(25,2)

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

df1

输出结果

执行时,上述脚本生成以下内容output(this output will vary on your system due to randomization)-

   x1 x2 x3

1  3  2  1

2  1  0  3

3  1  1  2

4  2  1  1

5  5  1  0

6  4  2  3

7  1  2  3

8  1  2  2

9  2  1  0

10 0  1  2

11 0  2  3

12 1  1  2

13 4  3  0

14 0  3  0

15 4  5  2

16 4  2  2

17 5  4  5

18 1  3  1

19 1  3  4

20 1  0  5

21 3  4  1

22 4  0  0

23 1  2  2

24 2  2  1

25 1  0  1

创建向量

让我们创建一个如下所示的向量 -

v1<-c(1,5,10)

v1

输出结果

执行时,上述脚本生成以下内容output(this output will vary on your system due to randomization)-

[1] 1 5 10

将向量值与数据框列按顺序相乘

使用 t 函数进行转置和乘号 * 将 v1 值与数据帧 df1 的列按顺序相乘,如下所示 -

x1<-rpois(25,2)

x2<-rpois(25,2)

x3<-rpois(25,2)

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

v1<-c(1,5,10)

t(t(df1)*v1)

输出结果
     x1 x2 x3

[1,]  1 20 10

[2,]  2 10 10

[3,]  2  5 40

[4,]  4 30 20

[5,]  1 30 30

[6,]  3  0 10

[7,]  2  0 10

[8,]  1 20 40

[9,]  1 15 50

[10,] 1  0 10

[11,] 3 25 30

[12,] 0 15  0

[13,] 1 25 40

[14,] 3  5 30

[15,] 3 10  0

[16,] 2 10 10

[17,] 2 10 20

[18,] 0 15 10

[19,] 1 15 30

[20,] 3  5 50

[21,] 1 10 10

[22,] 0 20 40

[23,] 1 25 10

[24,] 1  5  0

[25,] 3 10  0

示例 2

创建数据框

让我们创建一个数据框,如下所示 -

y1<-round(rnorm(25),2)

y2<-round(rnorm(25),2)

y3<-round(rnorm(25),2)

df2<-data.frame(y1,y2,y3)

df2

输出结果

执行时,上述脚本生成以下内容output(this output will vary on your system due to randomization)-

    y1     y2    y3

1  -0.20 -0.19  1.14

2  -0.04 -0.99  2.09

3   0.47  0.83  0.49

4  -0.23 -0.24  0.18

5   0.02 -1.03 -2.62

6   1.52 -0.99 -1.16

7  -0.17 -0.38  1.87

8   0.64 -0.16  0.62

9   1.32  0.02 -1.07

10 -0.37  2.05  0.52

11  0.25 -0.29  1.19

12  0.69 -0.58  0.93

13  1.50 -0.34  1.32

14  1.06 -1.27  1.04

15  0.16  0.87  0.84

16 -0.81  0.31  0.11

17  1.50 -0.53  1.95

18 -1.27  2.88 -0.88

19  0.37 -0.14  2.47

20  1.36 -1.51  1.36

21  1.29 -0.40 -0.24

22 -1.12  0.99  1.44

23 -0.17 -1.07 -0.22

24 -0.95  1.71 -0.46

25  0.00 -0.63  1.02

创建向量

让我们创建一个如下所示的向量 -

v2<-c(10,20,10)

v2

输出结果

执行时,上述脚本生成以下内容output(this output will vary on your system due to randomization)-

[1] 10 20 10

将向量值与数据框列按顺序相乘

使用 t 函数进行转置和乘号 * 将 v2 值与数据帧 df2 的列按顺序相乘,如下所示 -

y1<-round(rnorm(25),2)

y2<-round(rnorm(25),2)

y3<-round(rnorm(25),2)

df2<-data.frame(y1,y2,y3)

v2<-c(10,20,10)

t(t(df2)*v2)

输出结果
       y1    y2     y3

[1,]  -2.0  -3.8   11.4

[2,]  -0.4  -19.8  20.9

[3,]   4.7   16.6  4.9

[4,]  -2.3  -4.8   1.8

[5,]   0.2  -20.6 -26.2

[6,]   15.2 -19.8 -11.6

[7,]  -1.7  -7.6   18.7

[8,]   6.4  -3.2   6.2

[9,]   13.2  0.4  -10.7

[10,] -3.7   41.0  5.2

[11,]  2.5  -5.8   11.9

[12,]  6.9  -11.6  9.3

[13,]  15.0 -6.8   13.2

[14,]  10.6 -25.4  10.4

[15,]  1.6   17.4  8.4

[16,] -8.1   6.2    1.1

[17,]  15.0 -10.6  19.5

[18,] -12.7  57.6  -8.8

[19,]  3.7  -2.8   24.7

[20,]  13.6 -30.2  13.6

[21,]  12.9 -8.0  -2.4

[22,] -11.2  19.8  14.4

[23,] -1.7  -21.4 -2.2

[24,] -9.5   34.2 -4.6

[25,]  0.0  -12.6 10.2

以上是 如何按顺序将向量值与 R 中数据帧的列相乘? 的全部内容, 来源链接: utcz.com/z/338641.html

回到顶部