如何在特定字符后剪切 R 中的所有 Lines/Characters
How to cut all Lines/Characters in R after specific Characters
我目前正在学习用 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)
如有任何提示,我们将不胜感激。
这是一种方法,捕获出现在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)
您可以使用包 dplyr
中的 str_remove()
str_remove(documentName, "(?<=Johann).*")
[1] "Hello my name is Johann"
或将您的 gsub()
正则表达式调整为
gsub("(?<=Johann).*", "", documentName, perl=TRUE)
[1] "Hello my name is Johann"
我目前正在学习用 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)
如有任何提示,我们将不胜感激。
这是一种方法,捕获出现在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)
您可以使用包 dplyr
str_remove()
str_remove(documentName, "(?<=Johann).*")
[1] "Hello my name is Johann"
或将您的 gsub()
正则表达式调整为
gsub("(?<=Johann).*", "", documentName, perl=TRUE)
[1] "Hello my name is Johann"