Жанр / Секс в цифру в R - PullRequest
0 голосов
/ 08 мая 2018

Есть ли более эффективный способ создания числового столбца с полом? Столбец Sex имеет значения "male" и "female" без значений null и factor dtype.

train$Sex_num <- as.character(train$Sex)
train$Sex_num[train$Sex=="male"]<-1
train$Sex_num[train$Sex=="female"]<-0
train$Sex_num <- as.numeric(train$Sex_num)
table(train$Sex_num)

EDIT

Эффективно: меньше строк кода.

Ответы [ 3 ]

0 голосов
/ 08 мая 2018

ifelse довольно эффективно. Попробуйте

train$Sex_num <- ifelse(train$Sex=="male", 1, 0)
0 голосов
/ 08 мая 2018

На этот вопрос уже дано много хороших и эффективных ответов. Но иногда я чувствую, что named-vector (вектор с атрибутами) следует рассматривать как хорошую альтернативу в подобных случаях.

sexType <- c(female = 0, male = 1, other = 2)
train$Sex_num <- sexType[train$Sex]

Я добавил еще одну опцию как other, чтобы продемонстрировать гибкость, но это не является необходимым сценарием, упомянутым OP.

0 голосов
/ 08 мая 2018

просто удалите столбец Sex и создайте столбец is_male. Вы можете напрямую привести логический вектор к числовому, не указывая отдельно female.

train$is_male <- as.integer(train$Sex == "male")
...