使用fread函数读取带有正负符号的列,使用data.table包。

6

我正在尝试使用fread函数将基因组比对结果读入R中的data.table对象。以下是比对结果文件的快照:

USI-EAS28:1:100:1786:674#0/1    +   1_maternal  68326824      CTCAATTATACTGAAAGAAACACAATATATCATA    IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII  0   
USI-EAS28:1:100:1786:940#0/1    +   16_maternal 11407541    CTATTAGTGACCTGCTGTGGGACCTTGGGATGGT  IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII  0   
USI-EAS28:1:100:1786:705#0/1    +   1_maternal  63849584    CTGAGGGTTTGTGTCAGGAAGGGGTGTGGAATTG  IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII  0   0:T>C
USI-EAS28:1:100:1786:1168#0/1   -   5_maternal  31381649    GCATCATTCATGAAACAATTTTCAAGAGAGGAAA  IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII  0   
 USI-EAS28:1:100:1787:582#0/1   +   10_maternal 54587781    CTACAATAATAATAGGGGACTAAAACACCCCACT  IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII  0   
 USI-EAS28:1:100:1787:62#0/1    +   10_maternal 70390747     CTATTTGCTACTGAATTGTTAATTTTAAAACAGT IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII  0   
 USI-EAS28:1:100:1788:573#0/1   -   7_maternal  92583837     CACTGTCAACATTAGACAGACCAATGAGACAAAG IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII  0   
 USI-EAS28:1:100:1788:854#0/1   +   7_maternal  129611206    GTTTGTTTTTTTTTTTGAGATGGAGTCTCATTTT IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII  0   32:C>T
 USI-EAS28:1:100:1788:185#0/1   -   13_maternal 23694307    CAAACAAACTCAAAATGGACTATCGACTGAAAAA  IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII  0   
 USI-EAS28:1:100:1788:1339#0/1  -   13_maternal 33699510    TTAACTCTAGTTTTTAGGGATTGCAAATTAGACG  IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII  0   0:A>G

第二列报告了读取对齐到的链 (+ 表示正向,- 表示反向)。不幸的是,fread 试图将此列读入整数,并始终将该值分配为0。应该将此列读取为字符,甚至是布尔值。尝试使用参数 sepsep2 并没有帮助。

1个回答

3

谢谢,马修。实际上,colClasses 是我首先想到的,但正如你所知道的,它只能作为 read.table 的参数工作;期待它也成为 fread 的参数! - Alvaro Gonzalez
@AlvaroGonzalez 你好。实际上我不需要 colClasses。如果在 +- 后面没有数字,它现在会将其读取为 character。可以从R-Forge repo获取,通常几个小时内就可以获得(当它显示 rev 849 和状态:current 时)。 - Matt Dowle
它跑得非常顺畅,@MatthewDowle。非常感谢你。 - Alvaro Gonzalez
@AlvaroGonzalez 没问题,感谢您的指出。请点赞(点击0上方的灰色三角形将其变为橙色),并接受此答案(点击大白色勾号将其变为绿色)。 - Matt Dowle

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接