Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/64.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
R根据字符串向量匹配字符串的一部分_R_String_Match - Fatal编程技术网

R根据字符串向量匹配字符串的一部分

R根据字符串向量匹配字符串的一部分,r,string,match,R,String,Match,我有一个逗号分隔的字符类 A = "123,456,789" 我试图得到一个逻辑向量,当character类中的一个项出现在character数组中时 B <- as.array(c("456", "135", "789", "111")) 对R来说是相当新的,所以任何帮助都将不胜感激。提前感谢。您可以使用sappy和grepl的组合,如果匹配,将返回逻辑值 sapply(B, grepl, x=A) 由于比较向量是逗号分隔的,因此可以将其用作非循环方法 B %in% strspl

我有一个逗号分隔的字符类

A = "123,456,789"
我试图得到一个逻辑向量,当character类中的一个项出现在character数组中时

B <- as.array(c("456", "135", "789", "111"))

对R来说是相当新的,所以任何帮助都将不胜感激。提前感谢。

您可以使用sappy和grepl的组合,如果匹配,将返回逻辑值

 sapply(B, grepl, x=A)

由于比较向量是逗号分隔的,因此可以将其用作非循环方法

B %in% strsplit(A, ",")[[1]]
# [1]  TRUE FALSE  TRUE FALSE
另一种循环方法是使用
矢量化
grepl
。这在内部使用
mapply

Vectorize(grepl, USE.NAMES = FALSE)(B, A)
# [1]  TRUE FALSE  TRUE FALSE

在另一个答案中,我会使用非循环方法
Vectorize(grepl, USE.NAMES = FALSE)(B, A)
# [1]  TRUE FALSE  TRUE FALSE