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 提到的需要的场景。
有没有更有效的方法来创建带有性别的数字列? 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 提到的需要的场景。