如何将数字列转换为R中的因子

时间:2013-12-02 05:59:40

标签: r numeric r-factor

我正在尝试使用softImpute命令(来自softImpute包)填写缺失值,我正试图将大数据框中的分类变量转换为因子类型使用softImpute

我使用了as.factor命令和factor命令,但它们都产生了以下内容

train[a]=factor(train[a])

Error in sort.list(y) : 'x' must be atomic for 'sort.list'
Have you called 'sort' on a list?

a这是一个类似于:c(1:92)

的向量

我也尝试了as.character,但softImpute命令不会将变量识别为字符并将它们视为数字,从而产生分类/指示变量的十进制值。

1 个答案:

答案 0 :(得分:2)

尝试:

train[[a]]=factor(train[[a]])

这确实假设,a是一个对象,其数值在1:length(train)范围内,或者是names(train)向量中的一个值。如果使用“[”引用数据框,则会得到一个列表,其中一个元素恰好是您希望“分解”的向量,但它实际上不是一个向量,而是一个单元素列表。 “[[”函数只为您提供向量。