首页 > 解决方案 > 如何在R中的关键字前后提取特定数量的字符?

问题描述

我有一个数据框 ( data),其中有一列包含报告 ( data$Report_Text) 中的文本。我需要在每行的关键字(包括关键字)之前和之后提取 40 个字符,并将其作为新列存储在数据框中。

到目前为止,我已经为之前的字符提供了这个(理想情况下,我希望将之前 + 之后的文本存储在一列中,但如果这不可能,我可以做两列):

data$characters <- sub('.*?(\\d{40}) keyword', "", data$Report_Text)

但是,当我运行它时,它会为我提供关键字之前的所有文本,而不仅仅是 40 个字符。我哪里错了?

标签: rextract

解决方案


data$characters <- gsub("^.*(.{40}keyword.{40}).*$", "\\1", data$Report_Text))

可能更改.之前的{40}by \\d(仅数字)或您偏好的字符类型。


推荐阅读