когда я запускаю следующий код, все переменные в моем наборе данных удаляются,
data <- data[, -nearZeroVar(data)]
Я новичок в R, и я ожидал, что приведенный выше код удалит предикторы дисперсии, близкой к нулю, если они есть в наборе данных, на самом деле в данных нет предикторов дисперсии, близкой к нулю, поэтому я подумал, что он сохранит данные установить как есть, но это не так.
при запуске сценария я не всегда буду знать, являются ли предикторы предикторами дисперсии, близкой к нулю, или нет .... как я могу изменить код, чтобы добавить его в сценарий, который проверяет, есть ли предикторы дисперсии, близкой к нулю, и нет ли ни одного из предикторов предикторы являются предикторами дисперсии, близкой к нулю, тогда они должны сохранять набор данных как есть.
Следующий код воспроизводит ситуацию.
library(caret)
data(GermanCredit)
# remove the near-zero var predictors
GermanCredit <- GermanCredit[, -nearZeroVar(GermanCredit)]
# but now if i redo the above command it removes all the predictors from the data set.
GermanCredit <- GermanCredit[, -nearZeroVar(GermanCredit)]
# all predictors removed
Могут быть ситуации, когда мы не знаем, что набор данных не содержит никаких предикторов дисперсии, близкой к нулю.
Обновить
@ LauriK, topepo (Макс): Еще один глупый вопрос,
GermanCredit <- GermanCredit[, -nearZeroVar(GermanCredit)]`
Я думал, что если я напишу приведенный выше код как
GermanCredit <- GermanCredit[, -integer(0)]
поскольку перед integer(0)
стоит знак (-), он должен удалить integer(0)
, который не является ничем, поэтому он не должен ничего удалять и сохранять набор данных как есть.
Я знаю, что здесь мне может не хватать очень простой концепции, но я хотел бы научиться.