如何过滤R中的“任何值”?

时间:2016-03-07 17:45:21

标签: r dataframe filtering

奇怪的问题,但如何进行过滤,以便为数据帧返回所有行?例如,假设您有以下数据框:

Pts <- floor(runif(20, 0, 4))
Name <- c(rep("Adam",5), rep("Ben",5), rep("Charlie",5), rep("Daisy",5))

df <- data.frame(Pts, Name)

并且您要为此数据框设置预定的过滤器,例如:

Ptsfilter <- c("2", "1")

然后,您将在数据框中运行,以获取新的过滤数据框

dffil <- df[df$Pts %in% Ptsfilter, ]

然而,有时候,您根本不希望对数据帧进行过滤,并且为了自动化和最小化工作负载,您不希望必须返回并删除/注释掉每个实例这个过滤器。您只希望能够调整Ptsfilter值,以便在运行该行代码时不会从数据帧中过滤掉任何行。

我用以下的方式进行了实验/猜测:

Ptsfilter <- c("")
Ptsfilter <- c(" ")
Ptsfilter <- c()

无济于事。

我可以为Ptsfilter输入一个可以实现此目标的值吗?

1 个答案:

答案 0 :(得分:0)

您可能需要定义一个函数来为您执行此操作。

filterDF = function(df,filter){
    if(length(filter)>0){
         return(df[df$Pts %in% filter, ])
     }
    else{
        return(df)
    }
    }