基于匹配列到行的子集来设置数据帧 - R.

时间:2014-10-09 21:08:09

标签: r

我正在尝试根据来自另一个数据帧的匹配ID来对大数据帧进行子集化。我看了这个问题的答案:

R: subset a data frame based on conditions from another data frame

但是,我的数据与此不同之处在于,对于我的一个数据集,我在列中设置了链接器ID,而在另一个数据集中,它遍历行

  

数据集1

     

*ID* time stat
  *1* 3.21 6
  *4* 7.9 3
  ...

     

数据集2

     

*ID 1 2 4* ...
  y yellow brown yellow
  z 3 5 2
  a yes yes no

我最终想得到的是一个数据框,我只有数据集2中的数据,数据集1中有匹配的样本ID。所以在这个例子中:

  

*ID 1 4* ...
  y yellow yellow
  z 3 2
  a yes no

非常感谢任何帮助。

安德烈

1 个答案:

答案 0 :(得分:0)

您需要做的就是

newDf<-df2[,df2[1,]%in%df1[,1]]

其中df1 [,1]是列位置1中id列的数据集,df2 [1,]是行位置1中id列的数据集。

df2[1,]
#[1] 1 3 4

df1[,1]
#[1] 1 4

df2[1,]%in%df1[,1]
#[1] TRUE FALSE TRUE