【问题标题】:Select columns based on exact string match根据精确的字符串匹配选择列
【发布时间】:2022-11-03 00:39:20
【问题描述】:

我有一个大数据框,其中包含这样的列:

df <- data.frame(W0 = 1,
                 Response = 1,
                 HighResponse = 1,
                 Response.W0 = 1,
                 HighResponse.W0 =1) 

现在,在 for 循环中,我想根据它们是否包含指定的字符串来选择一列 - ResponseW0HighResponse。我选择列的方法是:

x <- dplyr::select(df, contains("HighResponse.W0"))  #this works
x <- dplyr::select(df, contains("HighResponse"))  #doesn't work. Selects HighResponse and HighResponse.W0
x <- dplyr::select(df, contains("Response")) #doesn't work. Selects Response, HighResponse, Response.W0, HighResponse.W0
x <- dplyr::select(df, contains("W0"))  #doesn't work. Selects W0, Response.W0, HighResponse.W0

如何修改我的列选择方法,使其只选择精确的字符串?例如,仅选择 W0Response 而不是其他匹配的字符串。

【问题讨论】:

    标签: r dplyr grepl


    【解决方案1】:

    使用带有matches 的锚来指定字符串的开头(^)和结尾($):

    dplyr::select(df, matches("^HighResponse$"))
    

    或者,没有contains

    dplyr::select(df, "HighResponse")
    

    【讨论】:

      猜你喜欢
      • 2021-11-24
      • 2021-10-18
      • 1970-01-01
      • 2017-12-23
      相关资源
      最近更新 更多