包中的一个函数给了我一个字符,原始的字符串被合并在一起。我需要将它们分开,换句话说,我必须找到原始元素。这是一个示例,也是我尝试过的:
orig<-c("answer1","answer2","answer3")
result<-"answer3answer2"
作为结果,我需要的是:
c("answer2","answer3")
我尝试过split()结果,但是没有字符串可以作为结果的基础,尤其是我以前不知道答案是什么。
我试图将结果匹配()到orig,但是我需要对所有子字符串进行匹配。
必须有一个简单的解决方案,但我还没有找到。
答案 0 :(得分:0)
您所描述的似乎完全是字符串匹配,而对于您的字符串,grepl
似乎就是这样,尤其是:
FindSubstrings <- function(orig, result){
orig[sapply(orig, grepl, result)]
}
更多细节:grepl接受一个pattern
参数,并查看它是否出现在您的字符串中(在我们的例子中为result
),并返回一个TRUE
/ FALSE
值。我们通过逻辑向量对原始值进行子集化-该值是否出现在字符串中?
可能的改进:
fixed=TRUE
可能是个好主意,因为对于简单的字符串匹配,您不需要完整的正则表达式功能"answer10"
包含"answer1"
答案 1 :(得分:0)
{{1}}
这应适用于定义明确且可逆的输入。另外,是否可以将一些字符串附加到函数的输入中,以便以后可以方便地将其分开?