【问题标题】:Remove the first n words from a text document in R从R中的文本文档中删除前n个单词
【发布时间】:2021-06-23 15:51:43
【问题描述】:
我在 R 中遇到问题,但在 Stackoverflow 中找不到类似的解决方案。
我有一个包含许多不同文本文档的数据框。我尝试 gsub 在特定模式后从文本文档中删除一些字符。这工作正常,但现在我有一个问题,我想从每个文本文档中删除前 5 个单词。
举例:
- “嘿,我是汤姆,我喜欢香蕉”
- “嘿,我是 Moritz,我喜欢巧克力”
解决方案应该是:
- “我喜欢香蕉”
- “我喜欢巧克力”
这是否具有 R 中可能的特定功能?
这对我很有帮助。
亲切的问候,
汤姆
【问题讨论】:
标签:
r
string
text
tidyverse
【解决方案1】:
stringr 选项:
library(stringr)
s <- c("Hey I am Tom and I like Bananas", "Hey I am Moritz and I like Chocolate")
word(s, 6, str_count(s, '\\s')+1)
#[1] "I like Bananas" "I like Chocolate"
【解决方案2】:
与str_remove类似的选项
library(stringr)
str_remove(s, '(\\w+\\s+){5}')
#[1] "I like Bananas" "I like Chocolate"
数据
s <- c("Hey I am Tom and I like Bananas", "Hey I am Moritz and I like Chocolate")
【解决方案3】:
尝试gsub,如下所示
> gsub("(\\w+\\s+){5}", "", s)
[1] "I like Bananas" "I like Chocolate"
数据
s <- c(
"Hey I am Tom and I like Bananas",
"Hey I am Moritz and I like Chocolate"
)
【解决方案4】:
我们可以使用strsplit、sapply和paste
xx <- c("Hey I am Tom and I like Bananas", "Hey I am Moritz and I like Chocolate")
sapply(strsplit(xx, split = " "),
FUN = function(x) paste(x[6:length(x)], collapse = " "))
# [1] "I like Bananas" "I like Chocolate"