для данного фрейма данных Я хотел бы умножить значения массива на столбец фрейма данных. Фрейм данных состоит из строк, содержащих имя, числовое значение и два факторных значения:
name credit gender group
n1 10 m A
n2 20 f B
n3 30 m A
n4 40 m B
n5 50 f C
Этот кадр данных может быть сгенерирован с помощью команд:
name <- c('n1','n2','n3','n4','n5')
credit <- c(10,20,30,40,50)
gender <- c('m','f','m','m','f')
group <- c('A','B','A','B','C')
DF <-data.frame(cbind(name,credit,gender,group))
# binds columns together and uses it as a data frame
Кроме того, у нас есть матрица, полученная из фрейма данных (в более сложных случаях это будет массив). Эта матрица содержит сумму всех контрактов, относящихся к определенной категории (характеризуемых m / f и A / B / C):
m f
A 40 NA
B 40 20
C NA 50
Цель состоит в том, чтобы умножить значения в кредите в DF $, используя соответствующее значение, назначенное каждой категории в матрице, например, значение 10 первой строки в DF будет умножено на 40 (категория определена m и A).
Результат будет выглядеть так:
name credit gender group result
n1 10 m A 400
n2 20 f B 400
n3 30 m A 1200
n4 40 m B 1600
n5 50 f C 2500
Если возможно, я бы хотел выполнить это с помощью базового пакета R. Но я открыт для любых полезных решений, которые хорошо работают.