如何在 R 中将包含多行的 DataFrame 中的行值与包含单行的 DataFrame 相乘?


为了在 R 中将包含多行的 DataFrame 中的行值与包含单行的 DataFrame 相乘,我们可以按照以下步骤操作:

  • 首先,创建一个包含多行的 DataFrame 和一个包含单行的 DataFrame。

  • 然后,使用 mapply 函数将包含多行的 DataFrame 中的行值与包含单行的 DataFrame 相乘。

示例

创建第一个 DataFrame

让我们创建一个如下所示的 DataFrame:

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

输出

执行上述脚本后,会生成以下输出(由于随机化,此输出在您的系统上可能会有所不同):

   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

创建第二个 DataFrame

让我们创建一个如下所示的 DataFrame:

df2<-data.frame(v1=5,v2=0,v3=2)
df2

输出

  v1 v2 v3
1  5  0 2

将两个 DataFrame 中的值相乘

使用 mapply 函数将包含多行的 DataFrame df1 中的行值与包含单行的 DataFrame 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

更新于: 2021 年 11 月 12 日

2K+ 浏览量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告