Skip to contents

Select, remove (or duplicate) rows from all views in a composition by their row locations or according to conditions based on a specific view.

Usage

filter_views(current.views, rows, view = "intraview", ...)

Arguments

current.views

the current view composition.

rows

row (integer) location; positive values to keep (duplicate) and/or negative to remove.

view

the name of the view to be used for filtering.

...

logical expressions defined in terms of the variables in view passed on to dplyr::filter().

Value

A mistyR view composition with filtered spatial units from all views.

Details

The values in rows have priority over the other parameters. If rows doesn't contain integer values then filtering is performed based on the view specified in view and expressions (...) returning logical values defined in terms of the variables in view.

See also

<data-masking>.

Other view manipulation functions: rename_view(), select_markers()

Examples

# Create a view composition with an intraview and filter

library(dplyr)

# get the expression data
data("synthetic")
expr <- synthetic[[1]] %>% select(-c(row, col, type))

# compose
misty.views <- create_initial_view(expr)

# select only the first 10 spatial units and preview
misty.views %>%
  filter_views(1:10) %>%
  str()
#> List of 2
#>  $ intraview     :List of 2
#>   ..$ abbrev: chr "intra"
#>   ..$ data  : tibble [10 × 11] (S3: tbl_df/tbl/data.frame)
#>   .. ..$ ECM  : num [1:10] 0.0385 0.0327 0.1444 0.387 0.1635 ...
#>   .. ..$ ligA : num [1:10] 0.834 0.119 0.525 0.269 0.195 ...
#>   .. ..$ ligB : num [1:10] 0.0157 0.0104 0.014 0.0367 0.1176 ...
#>   .. ..$ ligC : num [1:10] 0.236 0.804 0.334 0.502 0.232 ...
#>   .. ..$ ligD : num [1:10] 1.183 0.101 0.434 0.241 0.203 ...
#>   .. ..$ protE: num [1:10] 1.18 0 1.67 0 0 ...
#>   .. ..$ protF: num [1:10] 2.547 0.386 1.614 0.913 0.162 ...
#>   .. ..$ prodA: num [1:10] 0.382 0 0.472 0 0 ...
#>   .. ..$ prodB: num [1:10] 0 0 0 0 0.16 ...
#>   .. ..$ prodC: num [1:10] 0 0.536 0 0.418 0 ...
#>   .. ..$ prodD: num [1:10] 0.588 0 0.379 0 0 ...
#>  $ misty.uniqueid: chr "b98ad35f4e671871cba35f2155228612"

# select only the units where the expression of ligA is larger than 0.5
# and preview
misty.views %>%
  filter_views(NA, "intraview", ligA > 0.5) %>%
  str()
#> List of 2
#>  $ intraview     :List of 2
#>   ..$ abbrev: chr "intra"
#>   ..$ data  : tibble [213 × 11] (S3: tbl_df/tbl/data.frame)
#>   .. ..$ ECM  : num [1:213] 0.0385 0.1444 0.0307 0.2313 0.0181 ...
#>   .. ..$ ligA : num [1:213] 0.834 0.525 0.817 0.514 0.554 ...
#>   .. ..$ ligB : num [1:213] 0.0157 0.014 0.0186 0.0313 0.0117 ...
#>   .. ..$ ligC : num [1:213] 0.236 0.334 0.156 0.242 0.25 ...
#>   .. ..$ ligD : num [1:213] 1.183 0.434 1.092 0.674 0.699 ...
#>   .. ..$ protE: num [1:213] 1.178 1.669 0.779 1.21 1.249 ...
#>   .. ..$ protF: num [1:213] 2.55 1.61 2.51 1.63 1.7 ...
#>   .. ..$ prodA: num [1:213] 0.382 0.472 0.455 0.443 0.401 ...
#>   .. ..$ prodB: num [1:213] 0 0 0 0 0 0 0 0 0 0 ...
#>   .. ..$ prodC: num [1:213] 0 0 0 0 0 0 0 0 0 0 ...
#>   .. ..$ prodD: num [1:213] 0.588 0.379 0.536 0.584 0.458 ...
#>  $ misty.uniqueid: chr "b98ad35f4e671871cba35f2155228612"