首页 文章

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

提问于
浏览
2

我有两个这样的数据框:

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

1 回答

  • 3

    您可以迭代列:

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

    或类似地:

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

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

相关问题