如何将具有多行的数据帧中的行值与 R 中的单行数据帧相乘?

要将具有多行的数据帧中的行值与 R 中的单行数据帧相乘,我们可以按照以下步骤操作 -

  • 首先,创建一个多行数据框和一个单行数据框。

  • 然后,使用 mapply 函数将具有多行的数据帧中的行值与单行数据帧相乘。

示例

创建第一个数据框

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

x<-rpois(25,5)
y<-rpois(25,2)
z<-rpois(25,2)
df1<-data.frame(x,y,z)
df1
输出结果

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

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

创建第二个数据框

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

df2<-data.frame(v1=5,v2=0,v3=2)
df2
输出结果
  v1 v2 v3
1  5  0 2

将两个数据框中的值相乘

使用 mapply 函数将具有多行的数据帧 df1 中的行值与单行数据帧 df2 相乘 -

x<-rpois(25,5)
y<-rpois(25,2)
z<-rpois(25,2)
df1<-data.frame(x,y,z)
df2<-data.frame(v1=5,v2=0,v3=2)
mapply(`*`,df1,df2)
输出结果
       x y z
[1,]  25 0 8
[2,]  20 0 2
[3,]  50 0 6
[4,]  25 0 8
[5,]  10 0 8
[6,]  10 0 2
[7,]  30 0 4
[8,]  35 0 2
[9,]  40 0 4
[10,] 30 0 6
[11,] 30 0 0
[12,] 20 0 0
[13,] 20 0 2
[14,] 15 0 6
[15,] 25 0 0
[16,] 15 0 6
[17,] 10 0 0
[18,] 40 0 4
[19,] 35 0 4
[20,] 15 0 4
[21,] 15 0 0
[22,] 20 0 0
[23,] 30 0 2
[24,] 25 0 2
[25,] 35 0 6

猜你喜欢