【发布时间】:2020-08-04 18:15:53
【问题描述】:
我正在尝试找出一种简单的方法来使用 dplyr(数据集 = COL,变量 = SEX)来做这样的事情:
COL[COL$SEX == "MACHO","SEX"] <- "M"
COL[COL$SEX == "HEMBRA","SEX"] <- "F"
应该很简单,但这是?在唯一的命令行中?我目前能做的最好的。有没有更简单的方法?
【问题讨论】:
我正在尝试找出一种简单的方法来使用 dplyr(数据集 = COL,变量 = SEX)来做这样的事情:
COL[COL$SEX == "MACHO","SEX"] <- "M"
COL[COL$SEX == "HEMBRA","SEX"] <- "F"
应该很简单,但这是?在唯一的命令行中?我目前能做的最好的。有没有更简单的方法?
【问题讨论】:
一个选项是转换为factor 并指定levels 和labels,而不是多个分配
COL$SEX <- factor(COL$SEX, levels = c("MACHO", "HEMBRA", labels = c("M", "F"))
或者另一种选择是转换为逻辑向量,然后通过加1将其更改为数字索引,并根据索引替换值
COL$SEX <- c("M", "F")[1 + (COL$SEX == "HEMBRA")]
【讨论】: