如何在 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+ 瀏覽量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.