【发布时间】:2012-09-03 16:57:40
【问题描述】:
是否可以在 R 中搜索向量中的正则表达式,就好像所有元素都是折叠的单个元素一样?如果我们将所有元素折叠成一个来做到这一点,那么在搜索后就不可能将它们恢复为元素形式。
这是一个向量。
vector<-c("I", "met", "a", "cow")
现在,搜索词是“元”(元素 2 和 3 已折叠)。
假设我的任务是合并搜索字符串所在的两个元素。
所以我的期望是这样的:
vector = "I", "meta", "cow"
可以这样做吗?请帮忙。
【问题讨论】:
-
为了澄清,您想要:首先,搜索字符串是否存在,其次,返回一个包含合并字符串的新向量。这是正确的吗?
-
另外,搜索是否总是跨越源中的两个或多个完整字符串?也就是说,您不会搜索“taco”(可以从“met”的最后一个字母开始找到)?
-
@mrdwab 提出了一个很好的观点:如果您想找到“taco”,那么您将拥有“剩余”字符串,而您还没有说要如何处理它们。因此,如果您只想容纳完整的字符串,而不是折叠整个列表,只需成对折叠,例如
paste(vector[j],vector[j+1],collapse='')并对此进行正则表达式。事实上,如果你希望 "taco" 的结果是 "metacow",对结果向量稍作修改仍然可以达到你想要的效果。 -
@mrdwab 对不起,我没有提到这一点,搜索总是跨越完整的字符串。谢谢。