2017-01-06 7 views
1

preProcess를 사용하여 누락 된 값을 대체하려고합니다. 코드는 간단합니다. 그러나 경고가 발생했고 knnImpute을 사용할 수없는 것으로 보입니다. 온라인에서 정확한 설명을 찾지 못했습니다.캐럿에서 예측 함수를 사용할 때 R에서의 경고

library(mlbench) 
data(Soybean) 

library(caret) 
imputationObj <- preProcess(Soybean, method = c('knnImpute'), na.remove = FALSE) 
imputationObj 
imputedSoybean <- predict(imputationObj, Soybean) 
summary(imputedSoybean) 

>  Warning in pre_process_options(method, column_types) : 
>  The following pre-processing methods were eliminated: 'knnImpute', 'center', 'scale' 

답변

2

문제는 데이터 프레임 Soybean에 요인이 포함되어 있다는 점입니다. ?preProcess에서 첫 번째 인수는 행렬 또는 데이터 프레임 인

x이어야합니다. 숫자가 아닌 예측자는 허용되지만 무시됩니다.

하지만

R> class(Soybean[,2]) 
[1] "factor" 

는 값 red, 블루 and green`를 포함하는 요소의 중심을 얼마나, 그것을 다른 방법을 넣어합니다.