如何在 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中将数据框列转换为向量