是否有更有效的方法来创建具有性别的数字列? 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)
修改
高效:减少代码行。
答案 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提到的场景。