Преобразовать двухуровневый коэффициент в ИСТИНА / ЛОЖЬ - PullRequest
0 голосов
/ 22 сентября 2018

Мне нужно преобразовать этот класс в True и False

Class          : Factor w/ 2 levels "benign","malignant": 1 1 1 1 1 2 1 1 1 1 

Я уже пытался преобразовать его в числовое значение,

as.numeric(BreastCancer$Class)
as.integer(BreastCancer$Class)

, тогда я сделал

as.logical(BreastCancer$Class)

но я получаю только NA.

Я пытался использовать установочные пакеты dplyr для перекодирования, но не могу понять, как это работает.

Ответы [ 2 ]

0 голосов
/ 22 сентября 2018

Может быть просто:

BreastCancer$ClassLogical <- BreastCancer$Class == "benign"
0 голосов
/ 22 сентября 2018

Важно отслеживать, что вы кодируете как TRUE или FALSE:

vec_factor <- factor(
  c(1, 1, 1, 1, 1, 2, 1, 1, 1, 1), 
  labels = c("benign", "malignant")
)
str(vec_factor)
# Factor w/ 2 levels "benign","malignant": 1 1 1 1 1 2 1 1 1 1

vec_logical <- as.logical(as.integer(vec) == 1)
str(vec_logical)
# logi [1:10] TRUE TRUE TRUE TRUE TRUE FALSE ...

Обновление:

Как прокомментировал @ zx8754, as.logical является избыточным:

str(as.integer(vec) == 1)
# logi [1:10] TRUE TRUE TRUE TRUE TRUE FALSE ...

и ответ @ is гораздо более элегантный.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...