如何筛选';任何值';在R?

如何筛选';任何值';在R?,r,dataframe,filtering,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输入一个值来实现此目标 您可能需要定义一个函数来完成此操作 filterDF = functio

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

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
输入一个值来实现此目标

您可能需要定义一个函数来完成此操作

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

我想您应该在%中使用
%,而不是
=
。您是指
if(any(df$Pts%in%Ptsfilter))df
Ptsfilter yes@akrun mymistake@akrun但是我不确定你评论的第二部分的意义。我评论那是因为我不太明白你在寻找什么。你试过scoa的建议吗?我想这可能是最好的选择,谢谢。我会回来报到的。
dffil <- df[df$Pts %in% Ptsfilter, ]
Ptsfilter <- c("")
Ptsfilter <- c(" ")
Ptsfilter <- c()
filterDF = function(df,filter){
    if(length(filter)>0){
         return(df[df$Pts %in% filter, ])
     }
    else{
        return(df)
    }
    }