Как я могу использовать кодировку onehot и dummyVars в векторе? - PullRequest
0 голосов
/ 31 марта 2020

Я новичок в R и Stackoverflow.

В настоящее время я пытаюсь применить однокадровое кодирование к вектору. Я пытался использовать dummyvars для достижения этой цели.

v <- sample(c("cat", "dog", "mouse"), 1000, replace = TRUE);

dmy <- dummyVars(" ~ .", data = v) <br />
dat_transformed <- data.frame(predict(dmy, newdata = v))
dat_transformed

Я могу заставить его работать во фреймах данных или таблицах данных, но не в векторе. Как я могу обойти это?

Спасибо.

1 Ответ

0 голосов
/ 31 марта 2020

Метод по умолчанию dummyVars предполагает, что data будет data.frame, поэтому вам нужно будет обернуть вектор в data.frame

library(caret)
#> Loading required package: lattice
#> Loading required package: ggplot2

v <- data.frame(x = sample(c("cat", "dog", "mouse"), 10, replace = TRUE))

dmy <- dummyVars(~x, data = v)
dat_transformed <- predict(dmy, newdata = v)
dat_transformed
#>    x.cat x.dog x.mouse
#> 1      1     0       0
#> 2      0     0       1
#> 3      0     0       1
#> 4      0     1       0
#> 5      1     0       0
#> 6      0     1       0
#> 7      1     0       0
#> 8      0     0       1
#> 9      1     0       0
#> 10     1     0       0
...