Genre/Sex 到 R 中的数字

Genre/Sex to numeric in R

有没有更有效的方法来创建带有性别的数字列? 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)

编辑

高效:代码行数更少。

只需删除“性别”列并创建一个 is_male 列。您可以直接将逻辑向量强制转换为数字,而无需单独指定 female

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

ifelse 非常有效。尝试

train$Sex_num <- ifelse(train$Sex=="male", 1, 0)

已经为这个问题提供了许多好的和有效的答案。但有时我觉得 named-vector (带属性的向量)在这种情况下应该被认为是很好的选择。

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

我添加了另一个选项 other 来展示灵活性,但这不是 OP 提到的需要的场景。