整理文件并将其转换为包含文件名的单个融合数据框

时间:2015-04-06 13:18:06

标签: r dataframe glob melt

我的文件看起来像这样:

$ head -n3   *.full.tsv
==> XOX.full.tsv <==
Probe Index Gene Symbol log2(FC)    pval    CV
1427747_a_at    Lcn2    5.205   1.098e-02   0.455
1449326_x_at    Saa2    4.585   3.614e-04   0.788

==> QUX.full.tsv <==
Probe Index Gene Symbol log2(FC)    pval    CV
1450783_at  Ifit1   5.820   2.564e-02   0.256
1421008_at  Rsad2   5.631   4.781e-02   0.292

==> FOO.full.tsv <==
Probe Index Gene Symbol log2(FC)    pval    CV
1434719_at  A2m 7.823   1.753e-02   0.415
1427747_a_at    Lcn2    6.696   4.255e-03   0.455

==> BAR.full.tsv <==
Probe Index Gene Symbol log2(FC)    pval    CV
1449647_at  --- 2.227   5.194e-02   0.744
1455889_at  Far2    2.210   7.342e-02   0.406

我想要做的是将文件全局化并将它们组合成单个融化的文件 数据框如下所示:

Filename Probe Index Gene Symbol log2(FC)    pval    CV
XOX 1427747_a_at    Lcn2    5.205   1.098e-02   0.455
XOX 1449326_x_at    Saa2    4.585   3.614e-04   0.788
QUX 1450783_at  Ifit1   5.820   2.564e-02   0.256
QUX 1421008_at  Rsad2   5.631   4.781e-02   0.292
FOO 1434719_at  A2m 7.823   1.753e-02   0.415
FOO 1427747_a_at    Lcn2    6.696   4.255e-03   0.455
BAR 1449647_at  --- 2.227   5.194e-02   0.744
BAR 1455889_at  Far2    2.210   7.342e-02   0.406

我尝试了这个,但没有给出我想要的东西

infiles <- paste("./","*.*.*.full.tsv",sep="")
dataFiles <- lapply(Sys.glob(infiles), read.table,sep="\t",header=TRUE,check.names=FALSE )
tmp <- do.call(rbind,dataFiles)
head(tmp)

我仍然无法捕获文件名:

 Probe Index Gene Symbol log2(FC)      pval    CV
1 1427747_a_at        Lcn2    5.205 1.098e-02 0.455
2 1449326_x_at        Saa2    4.585 3.614e-04 0.788

我应该怎么做?

0 个答案:

没有答案