要将具有多行的数据帧中的行值与 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