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也不行。

總之,在讀取數據這一塊,還是需要有個系統的了解,例如掌握匹配不同數據類型的函數,能省不少事。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM