2015-03-13 64 views
2

让我有两个这样的数据帧:R-子集有条件到另一个数据帧

数据帧1(DF1):

col1 col2 
x x 
x x 
x y 
y y 

数据帧2(DF2):

col1 col2 
1.1 0.1 
1.3 1.0 
0.3 0.8 
0.7 1.6 

希望的输出数据帧(DF)是:

col1 col2 
0.7 0.8 
NA 1.6 

即,我想生成df2的子集,它反映df1 =“y”。我怎样才能使用R?我会很乐意提供任何帮助?非常感谢。

+0

@Frank,我住你的解决方案的格式问题。输出是[$ COL1 字符(0) $ COL2 字符(0) $ COL3 字符(0)] – oercim 2015-03-13 19:04:40

回答

3

可以遍历列:

lapply(1:ncol(df1),function(i) df2[[i]][df1[[i]]=="y"]) 

或类似的:

mapply(function(a,b) a[b=="y"], df2,df1) 

结果是list,不是data.frame,但这似乎最好的(因为行没有任何意义)。

相关问题