让我有两个这样的数据框:
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做到这一点?我会很高兴得到任何帮助吗?非常感谢。
答案 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
,但这似乎最好(因为行没有意义)。