Как выполнить поэлементное умножение в R


R отлично выполняет поэлементное умножение между двумя объектами.

В следующих примерах показано, как выполнять поэлементное умножение между различными объектами в R.

Пример 1. Умножение двух векторов

Следующий код показывает, как выполнить поэлементное умножение с двумя векторами:

#create vectors
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

 a b
1 1 2
2 3 2
3 4 3
4 5 3

#define vector
x <- c(2, 5, 5, 8)

#multiply data frame by vector
df\*x

 a b
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

 a b
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

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.