2013-05-24 2 views
0

Я пытаюсь использовать логический оператор подмножество в функции следующим образом:Использование логических операторов подмножества в функции

iris$Species <- as.character(iris$Species) 

mySubsetFunction <- function(df, species){ 
    dfSubset <- subset(df, Species==species) 
    return(dfSubset) 
} 

mySubsetFunction(iris, species="setosa" | species="virginica") 

Это возвращает ошибку:

Error: unexpected '=' in "mySubsetFunction(iris, species="setosa" | species=" 

Как я могу настроить аргументы функции для принятия логических операторов?

ответ

4

Вы имели в виду либо сделать:

mySubsetFunction <- function(df, species){ 
    dfSubset <- subset(df, Species %in% species) 
    return(dfSubset) 
} 

mySubsetFunction(iris, c("setosa", "virginica")) 

(Однако следует соблюдать осторожность при использовании subset внутри функции: Why is `[` better than `subset`?)

Или использовать subset непосредственно:

subset(iris, Species == "setosa" | Species == "virginica"`) 

или

subset(iris, Species %in% c("setosa", "virginica"))