【发布时间】:2011-12-20 23:52:07
【问题描述】:
对于给定的数据框,我想将数组的值乘以数据框的一列。数据框由行组成,包含名称、数值和两个因子值:
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 基础包来执行此操作,但我愿意接受任何有效的有用解决方案。
【问题讨论】:
标签: arrays r matrix dataframe r-factor