【发布时间】:2018-12-01 17:50:52
【问题描述】:
我有几个变量,
qual_cols <- c("ExterQual", "ExterCond", "BsmtQual", "BsmtCond", "HeatingQC", "KitchenQual", "FireplaceQu", "GarageQual", "GarageCond", "PoolQC")
每列由相同的五个 chr 值组成:
grades <- c( "Po", "Fa", "TA", "Gd", "Ex")
我想把它数字化
"Po" = 1; "Fa" = 2; "TA" = 4 "Gd" = 6 "Ex" = 11
为了乘以创建新变量,如下所示:
combi$GarageGrade <- combi$GarageQual * combi$GarageCond
combi$ExterGrade <- combi$ExterQual * combi$ExterCond
combi$KitchenScore <- combi$KitchenAbvGr * combi$KitchenQual
有什么方法可以做到这一点?
注意:我是编程初学者,所以夸大其词是值得赞赏的。
例子:
head(combi$ExterQual) # (Gd, TA, Gd, TA, Gd, Ta)
等价物是 (6, 4, 6, 4, 6, 4)
head(combi$ExterCond) # (TA, TA, TA, TA, TA, TA)
等价物是 (4, 4, 4, 4, 4, 4)
combi$ExterGrade <- combi$ExterQual * combi$ExterCond
head(combi$ExterGrade) # expected output: (24, 16, 24, 16, 24, 16)
【问题讨论】:
-
请展示一个可重现的小例子和预期的输出
-
嗨 @akrun 更新了,让我知道它是否可以使用任何进一步的说明
-
有疑问,
"BsmtCond" "HeatingQC"这些列如何乘以qual_cols中的某些名称没有相应的“Qual/Cond”列 -
这些乘以已经是数字的列
-
请检查您的
qual_cols。我没有找到某些列乘法的模式。无论如何,根据您提供的信息,我发布了一个解决方案
标签: r polynomial-math feature-engineering