美文网首页
data.table让你的读取速度提升百倍

data.table让你的读取速度提升百倍

作者: 生信交流平台 | 来源:发表于2020-12-23 22:37 被阅读0次

    不知道大家有没有用read.table和read.csv读取过文件,当文件不大的时候你可能还感觉不出读取速度,但是当文件比较大的时候,比如有上万行的时候,你就会感觉到等待时间明显变长,甚至无法忍受。

    今天小编给大家安利一个实用的R包data.table, 这个包可以明显的提升大文件的读取速度。下面我们就来做一个实验。我们随机生成一个100万行10列的文件,保存到你的电脑上,文件的大小可以达到173MB。接下来我们分别用传统的read.csv和data.table包里面的fread函数来读取这个超大的文件,然后比较两种方法的读取速度。

    # 加载data.table包
    library(data.table)
    
    # 数据读取性能对比分析
    # Create a large .csv file
    set.seed(100)
    m <- data.frame(matrix(runif(10000000), nrow=1000000))
    write.csv(m, 'm2.csv', row.names = F)
    # Time taken by read.csv to import
    system.time({m_df <- read.csv('m2.csv')})
    # Time taken by fread to import
    system.time({m_dt <- fread('m2.csv')})
    

    我们可以看到传统的read.csv读取该文件所需要的时间为48.84秒,而利用data.table包中的fread函数来读取只需要0.47秒,速度整整提升了100倍。、

    > # Time taken by read.csv to import
    > system.time({m_df <- read.csv('m2.csv')})
     用户  系统  流逝 
    48.84  1.09 50.72 
    > # Time taken by fread to import
    > system.time({m_dt <- fread('m2.csv')})
    用户 系统 流逝 
    0.47 0.08 0.31
    

    大家赶紧试试吧!

    【R语言】data.table让你的读取速度提升百倍​

    相关文章

      网友评论

          本文标题:data.table让你的读取速度提升百倍

          本文链接:https://www.haomeiwen.com/subject/ohqpnktx.html