我正在为我的质谱数据写一个脚本。
我有一个名为M1的矩阵中的数据。每个样本都在自己的列中。
M1示例:
S1 S2 S3
1 100 200 500
2 200 300 500
3 100 200 500现在,当我将de data放入矩阵中时,我可以通过M1$S1==M1$S2比较列。对于其他样本也是如此。
如何让这段代码自动运行所有的示例?
所以它将1与2和1与3进行比较并进一步计算?
也许,如果可能的话,有没有一种方法可以不得到真假列表,而只得到假样本?
发布于 2015-11-05 00:06:59
使用combn和apply的单向方法
数据
M1 <- as.matrix(read.table(header=F, text=' 100,200,500
200, 300, 500
100, 200, 500', sep=','))解决方案:
#get all the column combinations
combs <- combn(1:ncol(M1), 2)
#the columns describe the column combinations
> combs
[,1] [,2] [,3]
[1,] 1 1 2
[2,] 2 3 3
#then use apply to compare the columns
apply(combs, 2, function(x) M1[,x[1]] == M1[,x[2]])输出:
[,1] [,2] [,3]
[1,] FALSE FALSE FALSE
[2,] FALSE FALSE FALSE
[3,] FALSE FALSE FALSE对于上面的输出,每一列以与combs相同的顺序表示两列之间的比较。
https://stackoverflow.com/questions/33526015
复制相似问题