搜索
查看: 3583|回复: 1

在R里面实现read.table(file, sep = "\t", fill=TRUE)的效果

[复制链接]

633

主题

1189

帖子

4054

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
4054
发表于 2017-1-22 22:36:13 | 显示全部楼层 |阅读模式
很明显,在R里面,当我们读取一个规则的表达矩阵的时候,一般选取read.table函数,但是有些时候,我们的表达矩阵缺失,就会报错。
比如:
Error in scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings,  :
  line 486 did not have 5 elements
那么我们会用fill=TRUE参数来弥补这个错误。假设文件是:
[AppleScript] 纯文本查看 复制代码
chr14	731	99814	31441	4438435
chr12	293	99827	19787	3200446
chr4	329	98624	16272	2266525
chr21	308	99381	20629	3223508
chr2	1313	59586	16232	2144722
chr20	73	99831	16918	2781847
chr15	507	99825	16934	2691887
chr13	973	99834	20494	2812361
chr2	579	99691	23548	2587233
chr15	292	90533	23867	3985179
chr13	663	98930	13845	2064748
chr9	155	99106	13716	2805095
chr4	1398	99846	17931	3408048
chr12	1165	99821	22001	2524841
chr13	537	99787	22429	3363915
chrX	1491	98558	20972	1725530
chr8	294	99719	24624	4049416
chr6	1560	98975	18437	2717218
chr5	1029	99241	20613	2391361
chr19	107	99927	4223874
chr8	152	98913	15009	2745354
chr8	500	99647	10004	2630723
chr2	332	97087	16429	3397125
chr5	1049	97297	9627	1813599
chr2	1602	99872	19635	2409254
chr22	168	52131	7598	3131637
chr1	352	99908	22488	4570231
chr17	728	100000	42803	5597092
chr4	1591	98826	19067	2697673
chr12	672	99793	21947	2939380
chr9	1244	99958	34451	5413586
chr4	726	99613	15572	2872367
chr10	983	99917	25252	3377352
chr18	206	99797	15680	3568242
chr15	306	42015	7519	462807
chr10	35	99845	29467	3783538
chr8	74	35069	9250	884969
chr13	337	99700	25751	3511320
chr1	1078	99561	22515	2714458
chr15	797	99844	23613	3723000
chr13	916	99459	20326	2631849
chr1	634	99847	26280	3578876
chr1	222	99985	30216	5206155
chr1	658	99714	22410	3289874
chr9	420	17964	2310	184645
chr4	221	99900	12813	2853886
chrX	203	98189	17219	1683107
chr8	594	99012	17860	2677501
chr2	1762	99378	20803	3163140
chr2	24	98949	17006	2992841
chr1	2064	17179	4274	656848
chrY	2	718	429	647
chr14	683	99464	9515	2753531
chr10	1181	99483	13976	2534366
chrY	92	18191	6792	467134
chr12	867	99078	2082123
chr5	951	99877	26945	3712236
chr8	740	99581	22936	3607667
chr8	238	99260	20917	3123805
chr4	1861	99445	18814	3189959
chr2	31	99884	32691	4713159
chr2	344	99486	15676	2905181
chr13	384	99306	16866	2421803
chrX	367	99515	28041	1993241
chr3	453	99707	18123	3897250
chr2	537	99973	19768	3334232
chr15	862	99805	27696	3448935
chr15	427	99876	19977	3188929
chr11	329	99607	15327	2888582
chr8	663	99979	16996	3067147
chr6_ssto_hap7	38	35155	2945	485334
chr2	1088	99570	15939	3131007
chr13	615	98770	14115	2449684
chr4	673	97892	15247	2144655
chr15	626	99658	19505	3553630
chr12	1143	99952	30398	4803809
chr13	218	99759	23707	3362373
chr3	868	97572	14959	2187706
chr12	1253	99677	19572	4575540
chr5	1020	99573	20458	3046937
chr17	557	99940	33099	4430571
chr8	311	99589	14342	2983433
chr8	13	90159	3891816

其实也可以自己创造一个函数,比如:
[Python] 纯文本查看 复制代码
file <- 'filter-bam/GC_stat.100k.txt' 
tmp <- readLines(file)
dat = c()
 lapply(tmp[1:10], function(x){
  #x=tmp[1]
  tmp1<-strsplit(x,'\t')[[1]]
  if(length(tmp1)!=5){
    return(NULL)
  }else{
    dat <<- rbind(dat,tmp1)
  }
}) 
colnames(dat)=c('chr','number','total','GC','sum')

但是我的方法是很拙笨的,不知道大家能否修改呢?



上一篇:画突变频谱
下一篇:初学WGCNA
你这个问题很复杂,需要打赏,请点击 http://www.bio-info-trainee.com/donate 进行打赏,谢谢
回复

使用道具 举报

12

主题

26

帖子

592

积分

版主

Rank: 7Rank: 7Rank: 7

积分
592
发表于 2017-6-3 10:51:08 | 显示全部楼层
C:\Users\lijuanchen.GENECHEM\Desktop\1.png
从R语言实战中看到数据缺少补充方式。 1.png
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|生信技能树 ( 粤ICP备15016384号  

GMT+8, 2020-6-1 12:16 , Processed in 0.030875 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.