1

我目前正在学习一门在 R 中教授文本分析的课程。由于我对 R 相当陌生,所以我还不知道如何在一组特定字符之后剪切所有行。

例如,我给出了以下内容:

documentName <- "Hello my name is Johann my had is the largest to be deleted X"

我想要的结果是:

documentName <- "Hello my name is Johann"

到目前为止,我已经尝试了以下方法,但它并没有让我到任何地方。

gsub("(\Johann).*\\","",documentName)

任何提示将不胜感激。

4

2 回答 2

1

这是一种方法,捕获之前出现的所有内容Johann

x <- "Hello my name is Johann my had is the largest to be deleted"
out <- sub("^(.*\\bJohann)\\b.*$", "\\1", x)
out

[1] "Hello my name is Johann"

另一种方法,剥离出现在之后的所有内容Johann

sub("(?<=\\bJohann)\\s+.*$", "", x, perl=TRUE)
于 2020-05-23T08:51:28.197 回答
0

你可以str_remove()从包中使用dplyr

str_remove(documentName, "(?<=Johann).*")
[1] "Hello my name is Johann"

或将您的gsub()正则表达式调整为

gsub("(?<=Johann).*", "", documentName, perl=TRUE)
[1] "Hello my name is Johann"
于 2020-05-23T08:56:11.120 回答