数据帧的R-Subset以另一个数据帧为条件

时间:2015-03-13 18:36:18

标签: r

让我有两个这样的数据框:

data frame1(df1):

col1 col2
x    x
x    x
x    y
y    y

data frame2(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做到这一点?我会很高兴得到任何帮助吗?非常感谢。

1 个答案:

答案 0 :(得分:3)

您可以遍历列:

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

或类似地:

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

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