首页 > 解决方案 > 如何从 R Studio 中的数据框中删除大量文本

问题描述

我有一个通过自动刮刀收集的网站文章大数据框,其中包含“文本”和“网站”两列。问题是我在我收集的一个网站的所有文章中发现了大量无用的文本。

文本始终是相同的,并通过这些行说明“单击此处,您接受使用 cookie //rn 如果您想订阅,请单击下面的链接。//rn。订阅即表示您接受我们的隐私政策 / /rn 欲了解更多信息,请单击此链接"

我想找到一种方法来清除此消息中的所有文本字段,但到目前为止我无法管理。

这是我的数据框的一个例子

df

文本
这是文本 1。点击此处即表示您接受使用 cookie //rn 如果您想订阅,请点击下面的链接。//rn。订阅即表示您接受我们的隐私政策 //rn 了解更多信息,请单击此链接

这是文本 2

这是文本 3

这是文字 4

期望的结果:

df

文本这是文本 1

这是文本 2

这是文本 3

这是文字 4

这是我尝试过的

to_remove<-"By clicking here you accept the use of cookies //rn If you would like to subscribe please click on the link below. //rn. By subscribing you accept our privacy policy //rn for more information click on this link"

df<-gsub(to_remove, "", df$text)

唉,我收到以下错误消息: error in (gsub(to_remove, "", df$text)): invalid regular expression

我也尝试写下没有斜杠和其他符号的文本,但我收到了相同的错误消息

有谁知道有什么函数可以用来从这么大的文本中清除我的数据集?

标签: rtextdata-cleaninggsub

解决方案


您的代码中需要注意的一个错误是

df<-gsub(to_remove, "", df$text)

应该替换为

df$text <-gsub(to_remove, "", df$text)

您可能遇到的另一个问题是您可能将数据框的每一行作为不同的句子,在这种情况下,您的替换将不起作用。要解决此问题,您可以使用将文本组合成单个字符串

single_str_text = paste(df$text, collapse = ' ')

使用这个单个字符串,您可以执行正则表达式删除

gsub("By clicking here you.*for more information click on this link",
 '', 
 single_str_text)

推荐阅读