使用 R 在字符串中进行文本挖掘
Text Mining in a string using R
我最近开始使用 R 和一个数据分析新手。
当使用数据字符串进行搜索时,在 R 中是否可以找到单个数据主字符串中的重复次数?
示例:
主字符串:'abcdefghikllabcdefgllabcd'
并搜索字符串:'lla'
期望的输出:'abcdefghik lla bcdefg lla bcd'
[我尝试使用 R 的 grep() 函数,但它没有以预期的方式工作,只给出了多个主字符串中搜索字符串的重复次数。 ]
提前致谢。
像这样尝试 gsub() 方法:
main_string <- 'abcdefghikllabcdefgllabcd'
search_string <- 'lla'
output_string <- gsub(search_string, paste(' ', search_string, ' ', sep = ''), main_string)
这也适用于使用正则表达式捕获组:
gsub("(lla)"," \1 ","abcdefghikllabcdefgllabcd")
您的问题是说您可能只想计算搜索字符串在主字符串中出现的次数。如果是这样,试试这个衬垫:
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
注意:Unit-test 匹配字符串开头和结尾的解决方案(即确保它适用于 'llaabcdefghikllabcdefgllabcdlla')。我在其他地方看到了几个依赖 strsplit() 来拆分 'lla' 的解决方案,但是这些解决方案跳过了单词末尾的最后一个 'lla'。
我最近开始使用 R 和一个数据分析新手。
当使用数据字符串进行搜索时,在 R 中是否可以找到单个数据主字符串中的重复次数?
示例:
主字符串:'abcdefghikllabcdefgllabcd'
并搜索字符串:'lla'
期望的输出:'abcdefghik lla bcdefg lla bcd'
[我尝试使用 R 的 grep() 函数,但它没有以预期的方式工作,只给出了多个主字符串中搜索字符串的重复次数。 ]
提前致谢。
像这样尝试 gsub() 方法:
main_string <- 'abcdefghikllabcdefgllabcd'
search_string <- 'lla'
output_string <- gsub(search_string, paste(' ', search_string, ' ', sep = ''), main_string)
这也适用于使用正则表达式捕获组:
gsub("(lla)"," \1 ","abcdefghikllabcdefgllabcd")
您的问题是说您可能只想计算搜索字符串在主字符串中出现的次数。如果是这样,试试这个衬垫:
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
注意:Unit-test 匹配字符串开头和结尾的解决方案(即确保它适用于 'llaabcdefghikllabcdefgllabcdlla')。我在其他地方看到了几个依赖 strsplit() 来拆分 'lla' 的解决方案,但是这些解决方案跳过了单词末尾的最后一个 'lla'。