Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
与grepl R完全匹配_R_Grepl - Fatal编程技术网

与grepl R完全匹配

与grepl R完全匹配,r,grepl,R,Grepl,我试图用grepl从数据帧中提取某些记录 这是基于两列结果和名称之间的比较。这个变量的构建方式类似于“WordNumber”,但对于同一个单词,我有多个数字(超过30个),因此当我使用grepl表达式获取例如Word1时,我也会得到我想要避免的结果,比如Word12 有没有办法解决这个问题 Names <- c("Word1") colnames(Names) <- name Results <- c("Word1", "Word11", "Word12", "Word15")

我试图用grepl从数据帧中提取某些记录

这是基于两列结果和名称之间的比较。这个变量的构建方式类似于“WordNumber”,但对于同一个单词,我有多个数字(超过30个),因此当我使用grepl表达式获取例如Word1时,我也会得到我想要避免的结果,比如Word12

有没有办法解决这个问题

Names <- c("Word1")
colnames(Names) <- name
Results <- c("Word1", "Word11", "Word12", "Word15")
Records <- c("ThisIsTheResultIWant", "notThis", "notThis", "notThis") 
Relationships <- data.frame(Results, Records)

Relationships <- subset(Relationships, grepl(paste(Names$name, collapse = "|"), Relationships$Results))
因为我正在连接,所以我不确定如何使用\b来强制执行完全匹配


有什么建议吗?

使用“^”匹配字符串的开头,使用“$”匹配字符串的结尾

Names <-c('^Word1$')

Names除了@Richard的解决方案外,还有多种方法可以强制执行完全匹配

\b “\b”是用于在模式之前/之后标识单词的锚点

\< & \> “\”用于结束

>grepl(“\\”,c(“Word1”、“Word2”、“Word12”))
[1] 真假假假
我认为这只是:

Relationships[Relationships$Results==Names,]
如果你最后做的是
^Word1$
,你只是在做一个简单的子集。 如果您有多个名称,请改用:

Relationships[Relationships$Results %in% Names,]

我认为这只是
Relationships[Relationships$Results==Names,]
——如果你最终做的是
^Word1$
,那么你只是在做一个简单的子集。如果您有多个名称,则改为
Relationships[Relationships$Results%in%names]
。@thelatemail它工作得很好,非常感谢!你能把它作为一个答案贴出来吗?如果是一个列表,这将如何工作?我不能直接指定要匹配的单个单词。
名称
> grepl("\\bWord1\\b",c("Word1","Word2","Word12"))
[1]  TRUE FALSE FALSE
> grepl("\\<Word1\\>",c("Word1","Word2","Word12"))
[1]  TRUE FALSE FALSE
Relationships[Relationships$Results==Names,]
Relationships[Relationships$Results %in% Names,]