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

博文

大数据量下 行列处理问题

已有 3118 次阅读 2013-9-15 14:40 |系统分类:科研笔记

 对于一般数据量,行多点列多点都是没什么问题的,但是最近接触到一些大的数据,发现行列确实影响很大。拿一个84 x 800000的数据来说,当行数为800000行,列数位84列,在R下不管是读取还是运算或存储都比较快,然而反置之后,速度慢到不是一个数量级,尤其是data.frame存取。在linux如果用替换命令同样速度差距巨大。(其他暂时还没试过)

 我自己本身是学生物的,现在做这些东西确实很吃力,有些简单的小技巧和大家分享,也记录下来方便以后用:

 对于行列问题,允许的情况下,所有操作最好是在行多的情况下操作,R中行列反置非常简单,ta=t(mydata),直接就可以进行反置,然后进行下一步操作。

R中提取行列,以及去除行列也是很简单的事:data[,c(2:4)]; data[c(2:4),]; data[,-c(2:4)]; data[-c(2:4),] 分别是数据提取2-4列,2-4行, 去除2-4列, 2-4行。

 对于几个数据集整合问题R下可以用data.frame(a,b)来整合具有相同行数的a,b. 但是如果列数多了之后输出很慢。所以我建议在linux用命令行 paste a b > newfile 来实现具有相同行的数据的整合, 用cat a b > newfile来整合具有相同列的数据。 然后sort命令可以进行数据的排序。具体可以搜一下简单的用法

 这些功能对于专门搞生物信息或者计算机的人来说都是最基本的操作,但是对于做生物的人来说这些确实很难做,尤其是没人教的情况下,只能自己慢慢找,我也是在慢慢做这些东西,用这几个简单的命令把大数据量从Tassel识别的Hapmap格式的数据转换到PLINK识别的数据,算是能够满足我的需要了。边学边用边记录,“科研笔记”这一分类真的很贴切。O(∩_∩)O



http://blog.sciencenet.cn/blog-724080-725120.html

上一篇:Linux vim/vi 用:s 命令来替换字符串
下一篇:​利用R中的reshape包,来整理分割合并数据

0

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

数据加载中...

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

GMT+8, 2020-8-11 10:04

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部