首页 > 解决方案 > 根据条件创建新列

问题描述

我有 23 个数字列,但我只对一个数字感兴趣,其他数字将被编码为否。如果该列包含数字 3,它将被编码为是,而其他数字将是否。我该如何做到这一点?df 用于演示。谢谢你

id <- c(1:50)
c <- c(10:59)
d <- c(200:152, by=2)
e <- c(352:400, by=2)

df<-cbind.data.frame(id, c, d, c)

标签: r

解决方案


您的示例代码需要一些调整,但我认为这是您的想法:

id <- c(1:50)
c <- c(10:59)
d <- seq(200, 152, by = -2)
e <- seq(from = 452, to = 500, by=2)

df<-cbind.data.frame(id, c, d, e)

这将获取带有字母“3”的记录

df[stringr::str_detect(df$c, "3") | 
   stringr::str_detect(df$d, "3") |
   stringr::str_detect(df$e, "3") , ]

推荐阅读