我最近开始使用R和新手进行数据分析。
当使用一串数据进行搜索时,R是否有可能在单个主字符串中找到重复次数?
例:
主字符串:' abcdefghikllabcdefgllabcd'
和搜索字符串:' lla '
所需的输出:' abcdefghik lla bcdefg lla bcd '
[我尝试使用R的 grep()函数,但它没有以所需的方式工作,只给出了多个主字符串中搜索字符串的重复次数。]
提前谢谢。
答案 0 :(得分:2)
这也适用于正则表达式捕获组:
gsub("(lla)"," \\1 ","abcdefghikllabcdefgllabcd")
答案 1 :(得分:1)
尝试这样的gsub()方法:
main_string <- 'abcdefghikllabcdefgllabcd'
search_string <- 'lla'
output_string <- gsub(search_string, paste(' ', search_string, ' ', sep = ''), main_string)
答案 2 :(得分:0)
您的问题是,您可能只想计算主字符串中搜索次数的出现次数。如果是这种情况,请尝试这一个班轮:
string = "abcdefghikllabcdefgllabcd"
search = 'lla'
( nchar(string) - nchar( gsub(search, "", string)) ) / nchar(search)
#returns 2
string2 = "llaabcdefghikllabcdefgllabcdlla"
( nchar(string2) - nchar( gsub(search, "", string2)) ) / nchar(search)
#returns 4
注意:在字符串的开头和结尾处对匹配项进行单元测试(即确保它适用于'llaabcdefghikllabcdefgllabcdlla')。我在其他地方看到了几个依赖strsplit()拆分'lla'的解决方案,但是这些解决方案跳过了单词末尾的最后一个'lla'。