R fread and strip 白色
Posted
技术标签:
【中文标题】R fread and strip 白色【英文标题】:R fread and strip white 【发布时间】:2014-05-10 13:01:48 【问题描述】:我有一个带有额外空格的 csv 文件,我想将其作为数据帧读入 R,去除空格。
这可以通过使用来实现
testdata<-read.csv("file.csv", strip.white=TRUE)
问题是数据集很大,大约需要半个小时。 fread 函数至少快两倍,但没有 strip.white 函数。
library("data.table")
testdata<-data.frame(fread("file.csv"))
有没有一种快速的方法可以在读入后从列中去除空格,或者有什么方法可以使用 fread 去除空格?
如果只是一次导入,我不会那么介意,但我需要定期多次这样做。
【问题讨论】:
现在fread中有一个参数strip.white
默认设置为TRUE
,你也可以通过data.table = FALSE
给fread在读取数据集后接收data.frame
跨度>
【参考方案1】:
您可以使用来自stringr
包的str_trim
:
library(stringr)
testdata[,sapply(.SD,str_trim)]
默认情况下它会修剪两边的空白,但你可以设置边:
testdata[,sapply(.SD,str_trim,side="left")]
【讨论】:
谢谢,这样就可以了。但是,我的同事在 R 之外有一个解决方案。他在本地 Mac OSX 机器上使用 PERL 命令来剥离填充: perl -lape 's/\s+//sg' /path/to/file.csv > /path/ to/fileV2.csv 这会减小文件大小并在将其读入 R 之前去除空格。 请注意:如果数字列还包含空格,则使用@agstudy 的解决方案会将数字列转换为 chr。否则,很好的解决方案。【参考方案2】:现在fread
中有一个参数strip.white
默认设置为TRUE
,你也可以在读取数据集后将data.table = FALSE
传递给fread
以接收data.frame
【讨论】:
谢谢,自从我第一次遇到这个问题以来,fread功能已经升级,所以现在是这样。以上是关于R fread and strip 白色的主要内容,如果未能解决你的问题,请参考以下文章