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