【问题标题】:How do I remove capital letters and punctuation from data column in R?如何从 R 中的数据列中删除大写字母和标点符号?
【发布时间】:2020-01-12 10:34:36
【问题描述】:

我对 R 非常陌生(比如,这是我学习 R 的第二天),但对网络分析有一些经验。我正在尝试准备一些数据进行分析,但我无法将其清理干净。我需要从数据中的一列 twitter bios 中删除所有大写字母、符号和标点符号。我已经包含了数据第一部分的图片。

我尝试过类似帖子中的代码,但它不起作用,我不确定是不是因为我的数据格式不正确(它位于 csv 文件中)。我已经尝试过 gsub、regex 和其他帖子中的其他一些内容,但我确信我犯了一些非常基本的错误,但我似乎看不出我做错了什么。

我试图添加我所拥有的图片,但我似乎无法做到这一点。为了让您了解一下,我有一个名为 twitterbios 的 csv 文件,其中包含三列数据:“UserID”、“bio”和“timestamp”。

我想要的是从 twitterbios 数据集的 bios(第 2 列)中删除所有标点符号、大写字母和符号。例如,有人可能会说“我爱狗!!!(心形表情)”。我希望它只是说“我爱狗”。

这可能太含糊而无济于事,但如果您能给我任何建议,我将不胜感激。谢谢!

【问题讨论】:

  • 欢迎来到 SO。请阅读stackoverflow.com/questions/5963269/…
  • 嗨,tolower() 可用于大写字母。如果要修改字符串,您可能必须提取字符串。您可以通过执行 ?grep 查看 grep() 函数及其变体。我知道您已经看过它,但没有任何数据样本(不是图像)或您已经尝试过的代码,我们无法真正帮助您。
  • 复制粘贴数据比截图好。没有人愿意手动重新创建您的数据以提供答案。

标签: r text data-cleaning


【解决方案1】:

这里是reproducible example,说明如何使用包 stringr 和 dplyr 做到这一点。我不确定如何摆脱表情符号,但也许你可以用空字符串替换不是字母、数字或空格的所有内容。

library(stringr)
library(dplyr)

strings <- c("HeRe is Some teXT. WhO WRITES thIs WAY?",
             "---PunctuaTION IS not A CRIME!!!!")
strings %>%
  str_to_lower() %>%
  str_replace_all("[:punct:]", "")

# [1] "here is some text who writes this way"
# [2] "punctuation is not a crime"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-06
    • 1970-01-01
    • 2019-10-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多