R-查找部分匹配元组

R-查找部分匹配元组,r,R,假设您有一个如下所示的数据帧: column1 column2 column3 column4 1 124 2 a 2 125 4 b 3 124 6 c 4 126 8 d 5 150 10 e 如果数据帧包含满

假设您有一个如下所示的数据帧:

column1   column2    column3    column4
   1        124         2          a
   2        125         4          b
   3        124         6          c
   4        126         8          d
   5        150         10         e
如果数据帧包含满足仅基于其中两列的条件的元组,则最有效的方法(即最快的方法)是什么


如果有一个元组满足条件column1==1&column2130,那么您将如何查找w/o循环?当然,在这种情况下,结果必须返回FALSE。

几乎完全如您所写:

df[df$column1==1 & df$column2<140 & df$column2>130,]


几乎和你写的一样:

df[df$column1==1 & df$column2<140 & df$column2>130,]


正如@Tomas所指出的,你几乎做到了:

any(df$column1==1 & df$column2<140 & df$column2>130)
#[1] FALSE
或者


正如@Tomas所指出的,你几乎做到了:

any(df$column1==1 & df$column2<140 & df$column2>130)
#[1] FALSE
或者

或者使用data.table和以下语法:

library(data.table)
DT <- data.table(dat)
DT[column1==1 & column2 %between% c(130,140)]
或者使用data.table和以下语法:

library(data.table)
DT <- data.table(dat)
DT[column1==1 & column2 %between% c(130,140)]

+1对于使用任何函数都不知道!非常有用+1对于任何优雅的解决方案,这个答案可能更适合这个问题。+1对于任何函数的使用都不知道!非常有用+1对于任何优雅的解决方案,这个答案可能更适合这个问题。agstudy,您必须使用DT$column1,对吗?或者这是另一种语法-@Tomas-data.table允许您在不使用$notation的情况下访问变量。有趣!我会喜欢标准R中的这一点,因为一遍又一遍地写df$是无止境的+1为语法糖!agstudy,您必须使用DT$column1,对吗?或者这是另一种语法-@Tomas-data.table允许您在不使用$notation的情况下访问变量。有趣!我会喜欢标准R中的这一点,因为一遍又一遍地写df$是无止境的+1为语法糖!