【问题标题】:Convert text file to matrix [closed]将文本文件转换为矩阵[关闭]
【发布时间】:2013-02-27 20:20:50
【问题描述】:

我有一个输入文本文件,可以在这里下载: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 持有的所有值,依此类推! 任何帮助表示赞赏!

【问题讨论】:

  • 第一个数据框与这些矩阵有什么关系?它包含完全不同的值和名称?
  • 第二个与第三个 mlist (dput) 有何关系。
  • 如何从data.frame到你的矩阵?如果你不知道,我们怎么能?
  • 为了清楚起见,您包含的示例矩阵完全不相关......只是矩阵是什么的示例?您需要做的就是发布您的数据,然后发布您希望数据的样子。你的实际数据!您发布了 6 行 data.frame - 您期待 6x1、3x2、2x3 还是 6x1?你的例子都是四行!!你能明白为什么人们无法提供帮助吗?
  • 这个问题真的 那么糟糕 真的值得 6 票否决吗?! OP 至少已经开始包含一些示例数据,即使这一切都错了。

标签: r matrix


【解决方案1】:

我会尝试猜测被问到的内容。

假设您的数据框名为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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-15
    • 1970-01-01
    • 1970-01-01
    • 2019-01-06
    • 2017-11-03
    • 1970-01-01
    相关资源
    最近更新 更多