Reputation: 13832
I'm trying to use a logical operator to subset in a function as follows:
iris$Species <- as.character(iris$Species)
mySubsetFunction <- function(df, species){
dfSubset <- subset(df, Species==species)
return(dfSubset)
}
mySubsetFunction(iris, species="setosa" | species="virginica")
This returns an error:
Error: unexpected '=' in "mySubsetFunction(iris, species="setosa" | species="
How can I set up the arguments of the function to accept logical operators?
Upvotes: 0
Views: 540
Reputation: 72769
You meant to either do:
mySubsetFunction <- function(df, species){
dfSubset <- subset(df, Species %in% species)
return(dfSubset)
}
mySubsetFunction(iris, c("setosa", "virginica"))
(However, use caution when using subset
inside functions: Why is `[` better than `subset`?)
Or use subset
directly:
subset(iris, Species == "setosa" | Species == "virginica"`)
or
subset(iris, Species %in% c("setosa", "virginica"))
Upvotes: 4