R语言_读取大数据

首选方法:

使用data.table包中的fread函数:

fread(input, file, sep="auto", sep2="auto", dec=".", quote="\"",
        nrows=Inf, header="auto",
        na.strings=getOption("datatable.na.strings","NA"),  # due to change to ""; see NEWS
        stringsAsFactors=FALSE, verbose=getOption("datatable.verbose", FALSE),
        skip="__auto__", select=NULL, drop=NULL, colClasses=NULL,
        integer64=getOption("datatable.integer64", "integer64"),
        col.names,
        check.names=FALSE, encoding="unknown",
        strip.white=TRUE, fill=FALSE, blank.lines.skip=FALSE,
        key=NULL, index=NULL,
        showProgress=getOption("datatable.showProgress", interactive()),
        data.table=getOption("datatable.fread.datatable", TRUE),
        nThread=getDTthreads(),
        logical01=getOption("datatable.logical01", FALSE),  # due to change to TRUE; see NEWS
        autostart=NA
  )

加粗的部分是常用的

eg:

data <- fread('377/377_lj.csv',data.table = T)

读取的速度,比一众read.函数快了不止一倍。但不能读取xlsx格式的数据,支持csv格式的数据。

使用openxlsx包中的read.xlsx,这个函数对十万以内的较为复杂的数据还是没有任何问题的,数据量超过10w就会有那么一点吃力了,到70w时,基本上就是废掉的状态。

针对读取大量的数据问题,

翻了很多帖子,说要装/更新rtools的,并没有用,再说了,rtools是使用openxlsx必装的,貌似跟打包有关系。有说要用read.xl包的,试来试去,还不如read.xlsx,最终,还是fread最好,不过要事先转为csv。

另外read.xl是有其他优势的,例如它可以读取xls格式的数据,而openxlsx就不行,他可以自动把时间转为正常的格式,openxlsx也不行。

总之,在读取数据这一块,还是需要有个系统的了解,例如掌握匹配不同数据类型的函数,能省不少事。

posted @ 2018-10-11 13:34  JoAnna_L  阅读(2717)  评论(0编辑  收藏  举报