R语言学习之DataExpo2009练习

本文记录了使用R语言分析DataExpo2009中飞机起飞或到达延迟与各种因素关系的学习过程。在Win10环境下,通过R 3.5.1和RStudio,进行了数据预处理、大文件读取以及并行计算等操作,发现白天航班的延迟时间普遍少于晚上。
摘要由CSDN通过智能技术生成

R语言学习之DataExpo2009练习

今天是2018年的最后一天,逝者如斯夫,不舍昼夜。想必记录学习的过程对学习本身还是有所帮助的,因此开始决定记录R语言的一些学习、练习过程同时和大家一起分享探讨。
这篇是关于利用ASA的DataExpo2009(链接 https://community.amstat.org/stat-computing/data-expo/data-expo-2009 )做的一些练习。主要是探索飞机起飞或到达延迟与什么因素有关。

软件设置:Win10操作系统,R版本3.5.1,RStudio
基本步骤包括:

  1. 数据预处理:将不同年份的csv文件合并成一个文件(这里可以有许多方法,例如用python或者shell语言),同时将需要用到的字符变量映射成数值变量(为了能利用big.matrix变量类型)。
  2. 读取整个数据(约12Gb):利用bigmemory包中的 read.big.matrix读取文件同时生成后援文件和描述符文件以便下次快速读取文件。
  3. 利用并行计算:为了缩短程序运行时间,利用parallel包和doSNOW包进行并行计算。

以下为步骤2和3的具体代码:

#步骤2: load bigmemory 包,读取整个数据集(read.big.matrix)同时生成后援文件(1987_2008_All.bin)和描述符文件(1987_2008_All.desc),变量类型为整型#######
library(bigmemory)
x <-read.big.matrix('1987_2008_All.csv', header = TRUE, backingfile = 
                      '1987_2008_All.bin', descriptorfile = 
                      '1987_2008_All.desc', type = 'integer')
#步骤3
delay_info <- function(varname, delayname){
    #定义函数
  library(parallel)
  library(doSNOW)
  ncores <- max(1, detectCores()-2) #设置想要的并行计算核数
  c1 <- makeCluster(rep('localhost', ncores), type = 'SOCK') #创建集群
  registerDoSNOW(c1)
  y <- attach.big.matrix('1987_2008_All.desc') #利用在步骤2生成的描述符文件读取整个数据集(快且占用内存少)
  indexs <- 0 #行号和分组变量
  if((delayname %in% c(
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值