对于给定的数据框,我想将数组的值乘以数据框的一列。数据框由行组成,包含名称、数值和两个因子值:
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$credit 中的值,例如,DF 中第一行的值 10 将乘以 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 基础包来执行此操作,但我愿意接受任何可以很好地工作的有用解决方案。