如何在R语言中遍历字符串中的单个单词?
在R语言中遍历字符串里的单个单词
你的问题出在texts是单元素字符向量,它的整个内容就是一整句文本,所以for(text in texts)只会循环一次,输出完整的句子。要遍历单个单词,得先把整句分割成单独的单词向量,再进行循环。
方法1:使用基础包的strsplit()
# 原字符串 texts <- c("cнесмотря выборами председателя хдс заключил союз министром здравоохранения шпаном женатым геем позиционирующим защитника прав обычаев мигрантов панченко письменном объяснении подтвердила выложила фотографии целующихся юношей девушек считает гейпропагандой поцелуй губы входит традицию исконно русского приветствия включая поцелуи лицами пола") # 分割字符串为单个单词(\\s+匹配一个或多个空格,避免空元素) words <- unlist(strsplit(texts, split = "\\s+")) # 遍历每个单词 for(word in words) { print(word) }
方法2:使用stringr包(更简洁的字符串处理)
如果你习惯用tidyverse生态的工具,可以用stringr包的str_split():
library(stringr) # 分割字符串 words <- unlist(str_split(texts, "\\s+")) # 遍历单词 for(word in words) { print(word) }
两种方法的核心都是先把整句文本拆分成以单词为元素的向量,之后再用for循环就能逐个访问每个单词了。
内容的提问来源于stack exchange,提问作者pindakazen
相关产品推荐
相关产品推荐

