给出因子数值[R]

时间:2014-07-15 15:21:57

标签: r prediction numerical r-factor

我想预测一个数值变量。我有几个因素。对于所有这些因素,我有一个数字等价物。现在,将该数值等价物分配给该因子并将其用于预测是完美的。这可能吗? 如果这是不可能的,我想我需要用它们的数值等价来代替因子。这样做的最佳方式是什么?

一个例子:

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

2 个答案:

答案 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)