когато стартирам следния код, всички променливи в моя набор от данни се премахват,
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(Max): Още един глупав въпрос,
GermanCredit <- GermanCredit[, -nearZeroVar(GermanCredit)]`
Мислех, че ако напиша горния код като
GermanCredit <- GermanCredit[, -integer(0)]
тъй като има знак (-) преди integer(0)
, той трябва да премахне integer(0)
, което е нищо, така че не трябва да премахне нищо и да запази набора от данни такъв, какъвто е.
знам, че може да пропускам много основна концепция тук, но бих искал да науча.