Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/65.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
在sapply中使用函数时,如何告诉grep忽略任何美元符号?_R_Regex - Fatal编程技术网

在sapply中使用函数时,如何告诉grep忽略任何美元符号?

在sapply中使用函数时,如何告诉grep忽略任何美元符号?,r,regex,R,Regex,我有以下两个向量: vec1 <- c("Less than high school", "High school", "Junior college", "Bachelor", "Graduate") vec2 <- c("High school (n=998)", "Bachelor (n=359)", "Junior college (n=141)", "Graduate (n=211)", "Less than high school (n=211)") 到目前为止还不错。

我有以下两个向量:

vec1 <- c("Less than high school", "High school", "Junior college", "Bachelor", "Graduate")
vec2 <- c("High school (n=998)", "Bachelor (n=359)", "Junior college (n=141)", "Graduate (n=211)", "Less than high school (n=211)")
到目前为止还不错。但是,如果向量的文本中有一个美元符号,情况就不一样了:

vec1 <- c("Up to $27,600", "$27,600 to $54,900", "$54,900 to $82,100", "$82,100 to $109,000", "$109,000 to $137,000", "$137,000 and higher")
vec2 <- c("$27,600 to $54,900 (n=683)", "$109,000 to $137,000 (n=61)", "$54,900 to $82,100 (n=393)", "$137,000 and higher (n=164)", "$82,100 to $109,000 (n=225)", "Up to $27,600 (n=1070)")
(index <- sapply(vec1, grep, x = vec2))
$`Up to $27,600`
integer(0)

$`$27,600 to $54,900`
integer(0)

$`$54,900 to $82,100`
integer(0)

$`$82,100 to $109,000`
integer(0)

$`$109,000 to $137,000`
integer(0)

$`$137,000 and higher`
integer(0)

最后,我可以在回答中使用
pmatch
。无
sapply
必要:

第一向量:

pmatch(vec1, vec2)
[1] 5 1 3 2 4
第二矢量:

pmatch(vec1, vec2)
[1] 6 1 3 5 2 4
charmatch(vec1, vec2)
[1] 6 1 3 5 2 4
charmatch
也会起作用

第二矢量:

pmatch(vec1, vec2)
[1] 6 1 3 5 2 4
charmatch(vec1, vec2)
[1] 6 1 3 5 2 4

如果向向量添加标签很重要,请使用
setNames

setNames(charmatch(vec1, vec2), vec1)

这两个功能之间的差异,从
?pmatch

charmatch与具有重复项的pmatch类似。ok true,区别在于它区分不匹配和不明确的部分匹配,它匹配空字符串,并且不允许多个精确匹配


最后,我可以在回答中使用
pmatch
。无
sapply
必要:

第一向量:

pmatch(vec1, vec2)
[1] 5 1 3 2 4
第二矢量:

pmatch(vec1, vec2)
[1] 6 1 3 5 2 4
charmatch(vec1, vec2)
[1] 6 1 3 5 2 4
charmatch
也会起作用

第二矢量:

pmatch(vec1, vec2)
[1] 6 1 3 5 2 4
charmatch(vec1, vec2)
[1] 6 1 3 5 2 4

如果向向量添加标签很重要,请使用
setNames

setNames(charmatch(vec1, vec2), vec1)

这两个功能之间的差异,从
?pmatch

charmatch与具有重复项的pmatch类似。ok true,区别在于它区分不匹配和不明确的部分匹配,它匹配空字符串,并且不允许多个精确匹配


用用啊。。。是的,这比我做的好多了。我不知道这些函数的存在。谢谢呵呵。。。是的,这比我做的好多了。我不知道这些函数的存在。谢谢