我需要循环进入 df2 并获取 df2$col1 中的第一个值和 df2$col2 中的最后一个值,并使用这些值仅选择相应的行以及 df1$col1 中的所有行
如果您能帮我解决这个问题,我将不胜感激!
df1
col1
1
2
3
4
5
etc
df2
col1 col2
1200 1250
1299 1325
1350 1500
正如 SimonO101 所指出的,您可以使用"["
and %in%
。
尝试这个:
df1[df1$col1 %in% head(df2,1)[1,1] : tail(df2, 1)[1,2], , drop=FALSE]
正如@flodel 评论的那样,您甚至<=
可以提高效率
df1[df2[1,1] <= df1$col1 & df1$col1 <= df2[nrow(df2),2], , drop=FALSE]
相当于
df1[df1$col1 >= df2[1,1] & df1$col1 <= df2[nrow(df2),2], , drop=FALSE]