我想预测一个数值变量。我有几个因素。对于所有这些因素,我有一个数字等价物。现在,将该数值等价物分配给该因子并将其用于预测是完美的。这可能吗? 如果这是不可能的,我想我需要用它们的数值等价来代替因子。这样做的最佳方式是什么?
一个例子:
df = data.frame(f=c("a","b","a","c"),v=c(2,4,2,6))
lookup = data.frame(name=c("a","b","c"),v=c(1,2,3))
我想得到什么
df2 = data.frame(f=c(1,2,1,3),v=c(2,4,2,6))
cor(df2$f,df2$v) # will be 1
答案 0 :(得分:1)
或者
df2 <- merge(df, lookup, by.x = "f", by.y = "name")
cor(df2[, 2], df2[, 3])
或者,如果您的数据集很大
library(data.table)
setkey(setDT(df), f)
setkey(setDT(lookup), name)
df2 <- df[lookup]
cor(df2[, 2, with = F], df2[, 3, with = F])
答案 1 :(得分:0)
这有帮助吗?
cor(lookup$v[match(df$f,lookup$name)],df$v)