我正在为我的质谱数据编写脚本
我有一个名为M1
的矩阵中的数据。每个样本都在他自己的专栏中。
M1的样本:
S1 S2 S3
1 100 200 500
2 200 300 500
3 100 200 500
现在,当我将de数据放入矩阵时,我可以按M1$S1==M1$S2
比较列。和其他样品一样。
如何使此代码自动运行所有样本?
那么它将1与2和1与3进行比较并进一步计算?
也许如果有可能有办法得不到真假列表而只是假样本?
答案 0 :(得分:1)
使用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
相同。