Subsets/filters a data frame and drops the unused levels.
A data frame.
further arguments to be passed to
Indices of columns from which NOT to drop levels.
Newbie students using R expect that when a factor variable is filtered with
filter that any original levels that are no longer used after the filtering will be ignored. This, however, is not the case and often results in tables with empty cells and figures with empty bars. One remedy is to use
droplevels immediately following
filter. This generally becomes a repetitive sequence for most newbie students; thus,
filterD incorporate these two functions into one function.
filterD is a wrapper for
filter from dplyr followed by
droplevels just before the data.frame is returned. Otherwise, there is no new code here.
This function is only used for data frames.
A data frame with the filtered rows.
Basic Data Manipulations.
Derek H. Ogle, email@example.com
1 2 3 4 5 6 7 8 9 10
## The problem -- note use of unused level in the final table. levels(iris$Species) iris.set1 <- subset(iris,Species=="setosa" | Species=="versicolor") levels(iris.set1$Species) xtabs(~Species,data=iris.set1) ## A fix using filterD iris.set3 <- filterD(iris,Species=="setosa" | Species=="versicolor") levels(iris.set3$Species) xtabs(~Species,data=iris.set3)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.