由于格式化而导致导入R Data的问题

时间:2019-11-20 17:47:40

标签: r

我正在尝试将txt数据导入R;但是,由于txt文件的格式独特,我不确定如何执行此操作。我绝对觉得这个问题与以下事实有关:txt文件被格式化为用列名对齐列;但是,由于它是文本文件,因此需要使用各种空格。例如:

Gene           Chromosomal     Swiss-Prot             MIM    Description
name           position        AC        Entry name   code
______________ _______________ ______________________ ______ ______________________
A3GALT2       1p35.1          U3KPV4     A3LT2_HUMAN        Alpha-1,3-galactosyltransferase 2 (EC 2.4.1.87) (Isoglobotriaosylceramide synthase) (iGb3 synthase) (iGb3S) [A3GALT2P] [IGBS3S]
AADACL3       1p36.21         Q5VUY0     ADCL3_HUMAN        Arylacetamide deacetylase-like 3 (EC 3.1.1.-)
AADACL4       1p36.21         Q5VUY2     ADCL4_HUMAN        Arylacetamide deacetylase-like 4 (EC 3.1.1.-)
ABCA4         1p21-p22.1      P78363     ABCA4_HUMAN 601691 Retinal-specific phospholipid-transporting ATPase ABCA4 (EC 7.6.2.1) (ATP-binding cassette sub-family A member 4) (RIM ABC transporter) (RIM protein) (RmP) (Retinal-specific ATP-binding cassette transporter) (Stargardt disease protein) [ABCR]
ABCB10        1q42            Q9NRK6     ABCBA_HUMAN 605454 ATP-binding cassette sub-family B member 10, mitochondrial precursor (ATP-binding cassette transporter 

因此,我始终无法导入我的数据。因为它是带有空格的对齐文本,所以空格的数量根本不一致。

这是我使用的数据表的链接:https://www.uniprot.org/docs/humchr01.txt

1 个答案:

答案 0 :(得分:0)

每个字段都有固定的宽度。因此,您可以使用函数read.fwf来读取文件。

以下代码读取输入文件(假设文件仅包含行,而没有标题)

f = read.fwf('input.txt', c(14,16,11,12,7,250), strip.white=T)
colnames(f) = c('Gene name', 'Chromosomal position', 'Swiss-Prot AC',
                'Swiss-Prot Entry name', 'MIM code', 'Description')