我正在尝试使用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
命令不会将变量识别为字符并将它们视为数字,从而产生分类/指示变量的十进制值。
答案 0 :(得分:2)
尝试:
train[[a]]=factor(train[[a]])
这确实假设,a
是一个对象,其数值在1:length(train)
范围内,或者是names(train)
向量中的一个值。如果使用“[”引用数据框,则会得到一个列表,其中一个元素恰好是您希望“分解”的向量,但它实际上不是一个向量,而是一个单元素列表。 “[[”函数只为您提供向量。