从R中的整个数据框中删除特殊字符

时间:2018-04-17 20:18:07

标签: r data-science data-cleaning

问题:

如何使用R快速有效地从数据框中删除所有特殊字符?

进度:

此SO post详细说明了如何删除特殊字符。我可以将gsub函数应用于单个列(图像1和2),但不能应用于整个数据帧。

问题:

我的数据框由100多列整数,字符串等组成。当我尝试在数据帧上运行gsub时,它不会返回我想要的输出。相反,我得到了图像3中显示的内容。

df <- read.csv("C:/test.csv")
dfa <- gsub("[[:punct:]]", "", df$a) #this works on a single column
dfb <- gsub("[[:punct:]]", "", df$b) #this works on a single column
df_all <- gsub("[[:punct:]]", "", df) #this does not work on the entire df
View(df_all)

df - 这是原始数据框:

Original dataframe

dfa - 这是应用于b列的gsub。好!

gsub applied to column b

df_all - 这是应用于整个数据帧的gsub。糟糕!

gsub applied to entire dataframe

要点:

有没有办法gsub整个数据帧?否则,应该使用apply函数吗?

2 个答案:

答案 0 :(得分:1)

这是使用dplyr的可能解决方案:

{{1}}

答案 1 :(得分:0)

另一个解决方案是首先将数据帧转换为矩阵然后运行gsub,然后转换回数据帧,如下所示:

module Code where

Ord :: Char -> Int

Ord c = ...