如何比较R中两个矩阵的值?

  • 本文关键字:两个 何比较 比较 r
  • 更新时间 :
  • 英文 :


我有两个包含质谱仪数据的矩阵,类似于:

m1
[1]  [2]
[1]  Q1   2
[2]  Q2   1
m2
[1]  [2]
[1]  Q2   3
[2]  P5   1

,我首先要比较矩阵中第一列(包含加入码如P1)中的元素,如果它们是相同的,我要比较第二列(与访问码1,2,3等相关联的值)并比较值并追加到一个新的矩阵(值和加入码),如果只有比较值满足条件m1*2>2. 我是一名新的生物信息学家,真的需要一些帮助。谢谢大家!

如果我使用这样的数据帧:

Col1<-c("Q1","Q2")
Col2<-c(2,1)
m1<-data.frame(Col1,Col2)
> m1
Col1 Col2
1   Q1    2
2   Q2    1

Col1<-c("Q2","P5")
Col2<-c(3,1)
m2<-data.frame(Col1,Col2)
m2
Col1 Col2
1   Q2    3
2   P5    1

你可以使用

m1[intersect(which(m1$Col1==intersect(m1$Col1,m2$Col1)), which(m1$Col2*2>2)),]

返回m1中满足条件的值。这里,它不返回任何行,因为没有匹配。但如果你把第二个条件改成m1*2>1:

> m1[intersect(which(m1$Col1==intersect(m1$Col1,m2$Col1)), which(m1$Col2*2>1)),]
Col1 Col2
2   Q2    1

我相信dplyr可能会有更短或更优雅的东西,但这是我到目前为止所拥有的。如果这不是你所期望的,请用你期望的结果编辑文章。

最新更新