如何在 r 中执行元素乘法


R 非常适合在两个对象之间执行逐元素乘法。

以下示例展示了如何在 R 中的各个对象之间执行逐元素乘法。

示例 1:两个向量相乘

以下代码显示如何对两个向量执行逐元素乘法:

 #createvectors
a <- c(1, 3, 4, 5)
b <- c(2, 2, 3, 3)

#perform element-wise multiplication
a*b

[1] 2 6 12 15

以下是结果的计算方法:

  • 1*2= 2
  • 3*2 = 6
  • 4*3= 12
  • 5*3 = 15

示例 2:数据框与向量相乘

以下代码展示了如何使用数据帧和向量执行逐元素乘法:

 #define data frame
df <- data. frame (a=c(1, 3, 4, 5),
                 b=c(2, 2, 3, 3))

#view data frame
df

  ab
1 1 2
2 3 2
3 4 3
4 5 3

#definevector
x <- c(2, 5, 5, 8)

#multiply data frame by vector
df*x

   ab
1 2 4
2 15 10
3 20 15
4 40 24

示例 3:将两个数据帧相乘

下面的代码展示了如何在两个数据框之间执行逐个元素的乘法:

 #define data frames
df1 <- data. frame (a=c(1, 3, 4, 5),
                  b=c(2, 2, 3, 3))
df2 <- data. frame (c=c(6, 2, 2, 2),
                  d=c(1, 7, 4, 9))

#multiply two data frames
df1*df2

   ab
1 6 2
2 6 14
3 8 12
4 10 27

请注意,所得数据块的大小与我们相乘的两个数据块的大小相同。

另请注意,如果我们尝试将两个不同大小的数据帧相乘,我们将收到错误:

 #define data frames of unequal sizes
df1 <- data. frame (a=c(1, 3, 4, 5),
                  b=c(2, 2, 3, 3))

df2 <- data. frame (c=c(6, 2, 2),
                  d=c(1, 7, 4))

#attempt to multiply two data frames
df1*df2

Error in Ops.data.frame(df1, df2): 
  '*' only defined for equally-sized data frames

其他资源

如何在 R 中执行矩阵乘法
如何在R中将矩阵转换为向量
如何在R中将数据框列转换为向量

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注