Как выполнить умножение на элементы в 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