r - 如何将列中的是/否更改为 1 和 0

标签 r

我在 R 中有列是和否,我需要将 no 转换为 0,将 yes 转换为 1 到目前为止我有

clean %>% mutate(flight=ifelse(flight=="NO", 0,1)) 

但是,事实证明,其中一些值是“N”、“n”或“no”,它们都被转换为 1。如何将所有这些变体也转换为 0?

最佳答案

如果我们需要将多个值“N”、“n”、“no”、“NO”和所有其他值“Yes”转换为 0 和 1,使用 substr 获取第一个字符, 将其更改为大写 (toupper, 与 "N"进行比较 (!=) 并将其强制转换为二进制 (as.integer )

library(dplyr)
clean %>%
       mutate(flight = as.integer(toupper(substr(flight, 1, 1)) != "N"))

注意:假设列中的值只有“Yes”、“NO”、“no”、“N”、“n”

数据

clean <- tibble(flight = c("No", "Yes", "YES", "Y", "no",
      "No", "NO", "Y", "n", "y", "No"))

关于r - 如何将列中的是/否更改为 1 和 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55979093/

相关文章:

r - 根据 gps 坐标列表更改基于开放街道 map 的 igraph 中路径边缘的权重

r - 如何检查矩阵是否是矩阵列表的元素?在 R

r - 软件包 ‘stringr’ 和 ‘stringi’ 的安装具有非零退出状态

r - 使用 `j` 选择 `x` 的连接列及其所有非连接列

R图删除右边距

r - stat_function 和图例 : create plot with two separate colour legends mapped to different variables

r - R中的自动总是时间函数

r - 如何在 R 中创建如下所示的矩阵

r - 在 R 中关注使用 twitter Rest Api 的人

r - 逆矩阵中的误差