【发布时间】:2021-10-05 07:23:59
【问题描述】:
我有一个如下所示的数据集:
df <- structure(list(ID = 1:10, Region1 = c("Europe", "NA",
"Asia", "NA", "Europe", "NA", "Africa", "NA", "Europe", "North America"), Region2 = c("NA", "Europe",
"NA", "NA", "NA", "Europe",
"NA", "NA", "NA", "NA"
)),
class = "data.frame", row.names = c(NA, -10L))
我想创建一个名为EuropeYN 的新列,这取决于区域列(region1 或region2)是否包含“欧洲”。最终数据应如下所示:
df <- structure(list(ID = 1:10, Region1 = c("Europe", "NA",
"Asia", "NA", "Europe", "NA", "Africa", "NA", "Europe", "North America"), Region2 = c("NA", "Europe",
"NA", "NA", "NA", "Europe",
"NA", "NA", "NA", "NA"
), EuropeYN = c("yes", "yes", "no", "no", "yes", "yes", "no", "no", "yes", "no")),
class = "data.frame", row.names = c(NA, -10L))
如果只是检查“欧洲”是否出现在一列中,我知道该怎么做,但在检查多列时不知道如何做到这一点。如果只有一列,我会这样做:
df$EuropeYN <- ifelse(grepl("Europe",df$region1), "yes", "no")
关于解决此问题的最佳方法的任何想法?...
【问题讨论】:
-
ifelse(df$Region1 == "Europe" | df$Region2 == "Europe", "yes", "no")
标签: r string if-statement stringr grepl