将文本文件转换为矩阵

时间:2013-03-12 10:53:14

标签: r matrix

我有一个输入文本文件,可以在这里下载:DOWNLOAD

我想将文本文件转换为count.matrix,如下所示:

    1 2 3 4 5 6
  A 3 0 0 0 0 0
  C 0 3 0 0 0 0
  T 0 0 3 0 0 0
  G 0 0 0 3 3 3

这给出了以下感兴趣的序列:ACTGGG

文本文件包含概率分数(count / N) 我需要过滤掉所有带有A的值,这将是矩阵的第一行,第二行将是C,后跟C所有的值,依此类推! 任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:2)

我会试着猜猜是怎么回事。

假设您的数据框名为df,您可以将每列转换为矩阵,并使用lapply()将其放入列表中。例如,我转换为具有两列的矩阵。

seq_len(ncol(df)将使数字序列从1到列数,因此转换将迭代所有列。然后matrix()将每列转换为矩阵。

lapply(seq_len(ncol(df)),function(i) matrix(df[,i],ncol=2))
[[1]]
          [,1]      [,2]
[1,] 0.1682512 0.1589936
[2,] 0.1583613 0.1583613
[3,] 0.2294395 0.1401881

[[2]]
          [,1]      [,2]
[1,] 0.1654002 0.1563962
[2,] 0.1423133 0.1283551
[3,] 0.1913303 0.1068051

[[3]]
          [,1]      [,2]
[1,] 0.2558522 0.3320734
[2,] 0.2304359 0.1847167
[3,] 0.2934963 0.1893830