首页 > 解决方案 > 查找 data.frame 中的值是否包含在第二个 data.frame 的最小和最大范围内

问题描述

我有两个data.frames,我想知道 中的值df_1是否包含在df_2.

这是我的例子:

df_1 = data.frame(x = c(0.5, 0.75, 0.15, 0.1))
df_2 = data.frame(min = c(0.2, 0.5, 0.1, 0.6), max = c(0.9, 0.6, 0.35, 1))

期望的输出应该是例如 TRUE 或 FALSE 的逻辑向量,在这种情况下,期望的输出是:

> out
[1]  TRUE FALSE  TRUE FALSE

这应该是微不足道的,但到目前为止我找不到答案。

任何建议将不胜感激。

标签: rdataframefindrange

解决方案


为此,您只需要基本 R 即可:

df_2$min <= df_1$x & df_1$x <= df_2$max

不需要dplyr或其他任何东西tidyverse。但是,如果你真的想要它,你总是可以这样做:

dplyr::between(df_1$x, df_2$min, df_2$max)

可能会更好的可读性(尽管代码高尔夫有点差)。


推荐阅读