循环以选择R中2列中的第一个和最后一个值

时间:2013-11-14 12:03:17

标签: r loops

我需要循环到df2并获取df2 $ col1中的第一个值和df2 $ col2中的最后一个值,并使用这些值仅选择df1 $ col1中的相应行和所有行

如果你可以帮助我,我真的很感激!

DF1

col1 
1 
2
3
4
5
etc

DF2

col1 col2
1200  1250
1299  1325 
1350  1500

1 个答案:

答案 0 :(得分:1)

正如SimonO101所指出,您可以使用"["%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]