r - 如何在R中的关键字前后提取特定数量的字符?
问题描述
我有一个数据框 ( data
),其中有一列包含报告 ( data$Report_Text
) 中的文本。我需要在每行的关键字(包括关键字)之前和之后提取 40 个字符,并将其作为新列存储在数据框中。
到目前为止,我已经为之前的字符提供了这个(理想情况下,我希望将之前 + 之后的文本存储在一列中,但如果这不可能,我可以做两列):
data$characters <- sub('.*?(\\d{40}) keyword', "", data$Report_Text)
但是,当我运行它时,它会为我提供关键字之前的所有文本,而不仅仅是 40 个字符。我哪里错了?
解决方案
data$characters <- gsub("^.*(.{40}keyword.{40}).*$", "\\1", data$Report_Text))
可能更改.
之前的{40}
by \\d
(仅数字)或您偏好的字符类型。