R 如何使用部分匹配字符串创建子集?
我试图将被分类为NJS或ELJ的参与者分离出来,后面是一个数字,如NJS1、NJS2、ELJ8、ELJ25等。我记得我在寻找一个符号,意思是“选定的单元格包含“XYZ”,后面跟任何东西”,允许我的参与者分为两组。我试过以下方法,但没有效果R 如何使用部分匹配字符串创建子集?,r,subset,R,Subset,我试图将被分类为NJS或ELJ的参与者分离出来,后面是一个数字,如NJS1、NJS2、ELJ8、ELJ25等。我记得我在寻找一个符号,意思是“选定的单元格包含“XYZ”,后面跟任何东西”,允许我的参与者分为两组。我试过以下方法,但没有效果 NJSBio = subset(biography, biography$`L1(s)` == "NJS#") // NJSBio = subset(biography, biography$`L1(s)` == "NJS?&qu
NJSBio = subset(biography, biography$`L1(s)` == "NJS#")
//
NJSBio = subset(biography, biography$`L1(s)` == "NJS?")
//
NJSBio = subset(biography, biography$`L1(s)` == "NJS*")
我曾尝试使用RStudio中的“帮助”功能和Google来找到答案,但我猜我的搜索词太模糊了。有人能帮我刷新一下记忆吗?如果列名为
L1(s)
您可以尝试:
库(dplyr)
NJSBio=filter(传记,grepl(“NJS.*”,`L1(s)`))
或者调整最后一个选项
NJSBio=subset(传记,grepl(“NJS.*,传记$`L1(s)`))
也应该有效
但为了避免出现问题,作为更一般的评论,最好避免在变量名中使用括号。谢谢您的回复!我尝试这样做,并在L1(s)中收到以下错误://NJSBio=filter(传记,grepl(“NJS.*”,L1(s)):找不到函数“L1”//可能是列名中的括号导致问题吗?这是数据框中的第四列,也是唯一有括号的列。@HarryCaulton我已经更新了我的答案。如果使用括号,请在变量名周围写回勾号谢谢。我意识到它为什么不起作用。我仍然不知道你使用了哪一个撇号(我尝试了“和”,但在你的信息中找不到)但是当我在你的例子中单独复制这些撇号时,它起了作用!感谢你的帮助编辑回复我在键入时没有看到的回复:哦,所以它被称为倒勾,谢谢你的评论!@HarryCaulton欢迎你。如果答案解决了你的问题,你可以接受它。