R删除特殊字符(更快的方式)

时间:2018-03-14 08:56:28

标签: r regex text utf-8 dplyr

我有一个庞大的数据框,其中一些列包含"字符"。问题是我有一些错误"字符,像这样:

mutate_all(data, funs(tolower))

> Error in mutate_impl(.data, dots) :    Evaluation error: invalid input
> 'https://www.ps.f/c-w/nos-promions/v-ambght-rembment.html#modalit<e9>s'
> in 'utf8towcs'.

所以我删除了&#34;错误&#34;字符(注意:我不能轻易删除所有字符,因为我需要&#34;:&#34;来分隔数据)。

我找到了解决方案:

library(qdap) 
keep <- c(":") 
data$column <- strip(data$column, keep, lower = TRUE) 

请参阅:How to remove specific special characters in R

这很有用......但它确实很慢。因此,我的问题是:如何在我的所有列(字符列)上应用函数,这比我刚刚做的更快?

修改

我脚本中发生的一些例子:

View(data$column)
"CP:main:234e5qhaw/00:lcd-monitor-with-smatimge-lite"                                               
"CP:main:234e5qhaw/00:lcd-monitor-with-smarimge-lite"                                               
"CP:main:234e5qhaw/00:lcd-monitor-with-sartimge-lite"
"CP:main:bri953/00:faq:skça_sorulan_sorular:xc000003329:f02:9044:9512"

tolower(data$column) 
Error in tolower(data$column) :
invalid input "CP:main:bri953/00:faq:skça_sorulan_sorular:xc000003329:f02:9044:9512" in 'utf8towcs'

最佳情况:尽可能多地保留原始数据。但我可以想象&#34;特别&#34;必须更换字符。但我真的需要保持&#34;:&#34;在稍后阶段分离数据。

0 个答案:

没有答案