首页 > 解决方案 > 如何使用部分匹配的字符串进行子集化?

问题描述

我试图隔离被归类为 NJS 或 ELJ 的参与者,后跟一个数字,例如 NJS1、NJS2、ELJ8、ELJ25 等。我记得我正在寻找一个符号,表示“选定的单元格包含”XYZ“其次是任何东西”,让我的参与者被分成两组。我尝试了以下方法,但无济于事。

NJSBio = subset(biography, biography$`L1(s)` == "NJS#")
//
NJSBio = subset(biography, biography$`L1(s)` == "NJS?")
//
NJSBio = subset(biography, biography$`L1(s)` == "NJS*")

我曾尝试使用 RStudio 中的“帮助”功能并使用 Google 找到答案,但我猜我的搜索词太模糊了。谁能帮我恢复一下记忆?

标签: rsubset

解决方案


如果列被调用L1(s),您可以尝试:

library(dplyr)
NJSBio = filter(biography, grepl("NJS.*", `L1(s)`))

或调整您的最后一个选项

NJSBio = subset(biography, grepl("NJS.*", biography$`L1(s)`))

也应该工作。

但是为了避免问题并作为更一般的评论,最好避免在变量名中使用括号。


推荐阅读