caumine的个人博客分享 http://blog.sciencenet.cn/u/caumine

博文

R语言 大数据处理的简单策略——分段处理

已有 8366 次阅读 2013-12-25 13:28 |个人分类:R语言|系统分类:科研笔记|关键词:学者| R语言, 大数据

面对大数据你小小的电脑是不是感觉到越来越力不从心了。R语言中专门提高了一些包,突破内存的限制,让小电脑也能处理大数据。常见的包如下:

描述
ff提供了一种数据结构,保存在硬盘中,但是操作起来就如同在内存中一样
bigmemory支持大规模矩阵的创建、储存、读取和操作。矩阵被分配到共享内存或内存映射的文件中(memory-mapped files)
filehash实现了简单的key-value数据库,在其中特征字符串key与存储在硬盘中的数据value相关联。
ncdf, ncdf4Provides an interface to Unidata netCDF data files.
RODBC, RMySQL,
ROracle,
RPostgreSQL,
RSQLite
可以用这些包读取外部关系数据库管理系统的数据

注:转自《R in action》


但是这些包学起来也不容易,我看了半天的说明书也没看懂怎么用,奈何英文不好,中文材料也相对少。

现在提供了一个简单直观的方法处理大数据,缺点是消耗时间长,不能整体处理数据,只能处理能分段处理的数据。

具体代码如:

######################################################################

#R语言下  大数据分段处理策略

#readlines() 每次读取一定行数,进行分段处理

# writed by mine date:2013.12.22

#######################################################################

fl=file.choose()  

c=file(fl,"r")

on.exit(c)

rlnm=readLines(c,n=1)  #第一行为列名

mks=1

nrows=1000             #设置处理的行数

while(T){

 rl=readLines(c,n=nrows)   #nrows

 if(length(rl)==0){

   break

 }else{

   rl=c(rlnm,rl)

   mks=mks+nrows

   data=read.table(text=rl,sep="t",head= T,stringsAsFactors=F)#rl_all中读到data.frame

#myfun(data)

cat(cat("已处理",mks,"n")

 }

}

close(c)

 



https://m.sciencenet.cn/blog-1129519-752724.html


下一篇:多物体的长宽面积测量程序

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-23 22:20

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部