R 数据帧的动态子集

R 数据帧的动态子集,r,R,我有一个数据框,其中包含固定的无数字列和任意数字列,如下所示: s <- data.frame(A=c("a","b","c"),B=c(1,2,3), C=c(24,15,2)) 一般来说,像这样 s <- data.frame(A=sample(letters,100,T),B=sample(1:4,100,T), C=sample(2:40,100,T)) # larger dataframe min <- c(2,10) max <- c(3,30) f

我有一个数据框,其中包含固定的无数字列和任意数字列,如下所示:

s <- data.frame(A=c("a","b","c"),B=c(1,2,3), C=c(24,15,2))

一般来说,像这样

s <- data.frame(A=sample(letters,100,T),B=sample(1:4,100,T), C=sample(2:40,100,T))
# larger dataframe

min <- c(2,10)
max <- c(3,30)

  filt<-rowSums(
    sapply(1:length(min),function(x){   # for each item in min (or max)
    s[,x+1]>=min[x] & s[,x+1]<=max[x]   # create a T/F vector
    })
  )==length(min)                        # this returns T for cases where all criteria are met

  s[filt,]  # this applies your filter to s
s
s <- s[s$B >= min[1] & s$B <= max[1] & s$C >= min[2] & s$C <= max[2],] 
for(i in 1:length(min))
  s <- s[s[,i+1] >= min[i] & s[,i+1] <= max[i],]
s <- data.frame(A=sample(letters,100,T),B=sample(1:4,100,T), C=sample(2:40,100,T))
# larger dataframe

min <- c(2,10)
max <- c(3,30)

  filt<-rowSums(
    sapply(1:length(min),function(x){   # for each item in min (or max)
    s[,x+1]>=min[x] & s[,x+1]<=max[x]   # create a T/F vector
    })
  )==length(min)                        # this returns T for cases where all criteria are met

  s[filt,]  # this applies your filter to s