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为语法糖!