流派/性别到R中的数字

时间:2018-05-08 19:57:41

标签: r transformation numeric

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

修改

高效:减少代码行。

3 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:2)

ifelse效率非常高。尝试

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

答案 2 :(得分:0)

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

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

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