我有我的数据集的一些因素变量,我尝试将它们转换为数字与循环循环因素转换为数字
a = sample(c('a', 'b'), 100, replace = TRUE)
b = sample(c('a', 'b'), 100, replace = TRUE)
df = as.data.frame(cbind(a, b))
library(plyr); library(dplyr)
for(i in df[, 1:2]) {
k = as.numeric(as.character(revalue(df[,i],
c('a' = 1,
'b'= 2
))))
}
,我得到错误
Error in revalue(df[, i], c(a = "1", b = "2")) :
x is not a factor or a character vector.
有什么不对? NB重要的是, 'A' 等于1 & 'B'= 2
你想干什么'的(我在1:2)'(或可替代'的(我在seq_along (df [,1:2]))''而不是'for(i in df [,1:2])' –
对于您的示例数据,只需'df $ a < - as.numeric(df $ a)'和'df $ b < - as.numeric(df $ b)'将会起作用 – neilfws