--- title: "Using Filter and Expressions" output: rmarkdown::html_vignette vignette: > %\VignetteIndexEntry{Using Filter and Expressions} %\VignetteEngine{knitr::rmarkdown} %\VignetteEncoding{UTF-8} --- # Filtering & Expressions in dataviewR Filtering in `dataviewR` is done using a single powerful method: writing a **`dplyr` compatible expression** in the filter box. This gives you complete flexibility while keeping the logic clean and reproducible. --- ## 1. Launch dataviewR with a dataset ```r library(dataviewR) dataviewer(iris) ``` Once the app opens, you’ll see a Filter text box where you can type any valid expression similar to `dplyr::filter()`. ## 2. Filtering with Expressions You can write any filtering condition that you would normally pass to: ```r dplyr::filter(...) ``` Basic comparisons ```mathematica Sepal.Length > 5 ``` Multiple conditions ```mathematica Sepal.Length > 5 & Species == "virginica" ``` Using %in% ```nginx Species %in% c("setosa", "virginica") ``` Finding missing values ```csharp is.na(Petal.Width) ``` String matching ```scss grepl("^s", Species) ``` When you click Submit, the expression is evaluated and the dataset updates. Invalid expressions show a friendly error notification. ## 3. Re-running, clearing, or updating filters - Submit → runs the filter - Clear → resets the filter box The display updates immediately after submitting. ## 4. How filtering affects the generated R code Whenever you apply a filter, the exported code reflects exactly what you typed: ```r iris |> filter(Species == "setosa" & Sepal.Length > 5) |> select(Sepal.Length, Sepal.Width, Species) ``` Filtering always appears before column selection in the generated R code. ## 5. Tips for Writing Expressions - Use & instead of && - Use %in% for selecting multiple values - Variable names are case-sensitive - Treat the filter box like the `dplyr::filter()` function - If something fails, try running your expression directly in the R console first ## 6. Note on Quick Filter and Quick Search The quick filter box (placed below the variable name) will helps to quickly search for a value in the variable. For character/factor variable(s) - it shows the distinct values of the variable(s) including the **\** values. For numeric variable(s) - it shows an interactive draggable slider with minimum and maximum values of the variable(s). These do not reflect in the generated R code as filtering logic is solely depends on the Filter expression box. The quick search box allows you to quickly check whether a value exists in the dataset. It searches only within variable values, not variable names/attributes. ## Summary In this article, you learned:
- `dataviewR` uses expression-based filtering system
- Expressions must be valid similar to `dplyr::filter()` function
- The filtered result updates on Submit
- Exported code reflects your filter exactly
- Quick filters help browsing but do not contribute to filtering logic
Expression filtering gives users full flexibility and keeps the workflow reproducible. ## Next Article Continue with: [Exploring Multiple Datasets](Multiple-Datasets.html)