1

假设您有如下数据框:

column1   column2    column3    column4
   1        124         2          a
   2        125         4          b
   3        124         6          c
   4        126         8          d
   5        150         10         e

如果数据框包含仅基于两列满足条件的任何元组,那么找出(真/假)的最有效(即最快)方法是什么?

如果存在满足条件的元组,您将如何找出(w/oa 循环)column1==1 & column2<140 & column2>130?(当然,FALSE在这种情况下,结果必须返回)。

4

3 回答 3

4

正如@Tomas 指出的那样-您几乎就在那里:

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

或者...

with(df,any(column1==1 & column2<140 & column2>130))
#[1] FALSE
于 2013-08-02T01:36:22.730 回答
2

或使用data.tablebetween语法糖:

library(data.table)
DT <- data.table(dat)
DT[column1==1 & column2 %between% c(130,140)]
于 2013-08-02T01:50:31.283 回答
2

几乎和你写的一样:

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

或者

with(df, df[column1==1 & column2<140 & column2>130,])
于 2013-08-02T01:31:41.993 回答