与R的数据比较

时间:2015-11-04 15:44:33

标签: r bioinformatics

我正在为我的质谱数据编写脚本 我有一个名为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进行比较并进一步计算?

也许如果有可能有办法得不到真假列表而只是假样本?

1 个答案:

答案 0 :(得分:1)

使用combnapply的一种方式:

数据

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相同。