Provides alternative function to base::union(), base::intersect(), and
base::setdiff().
- set_union(): Returns the union of the sets in- ....
- set_intersect(): Returns the intersect of the sets in- ....
- set_difference(): Returns the difference of the sets in- ....
Usage
set_intersect(..., pairs = FALSE)
set_union(..., pairs = FALSE)
set_difference(..., pairs = FALSE)Arguments
- ...
- A list or a comma-separated list of vectors in the same class. If vector contains duplicates they will be discarded. If the list doesn't have names the sets will be named as - "set_1", "- Set_2",- "Set_3"and so on. If vectors are given in- ..., the set names will be named with the names of the objects provided. Data frames are also allowed, provided that common column names exist.
- pairs
- Returns the pairwise unions of the sets? Defaults to - FALSE.
Value
A vector showing the desired operation of the sets. If pairs = TRUE, returns a list showing the pairwise operation of the sets.
Author
Tiago Olivoto tiagoolivoto@gmail.com
Examples
# \donttest{
library(metan)
(A <- letters[1:4])
#> [1] "a" "b" "c" "d"
(B <- letters[2:5])
#> [1] "b" "c" "d" "e"
(C <- letters[3:7])
#> [1] "c" "d" "e" "f" "g"
set_union(A, B)
#> [1] "a" "b" "c" "d" "e"
set_intersect(A, B, C)
#> [1] "c" "d"
set_difference(B, C)
#> [1] "b"
# Operations with data frames
# Add a row id for better understanding
sets <- data_ge %>% add_row_id()
set_1 <- sets[1:5,]
set_2 <- sets[2:6,]
set_3 <- sets[3:7,]
set_intersect(set_1, set_2, set_3)
#> # A tibble: 3 × 6
#>   row_id ENV   GEN   REP      GY    HM
#>    <int> <fct> <fct> <fct> <dbl> <dbl>
#> 1      3 E1    G1    3      2.43  47.8
#> 2      4 E1    G2    1      3.21  45.2
#> 3      5 E1    G2    2      2.93  45.3
set_difference(set_2, set_3)
#> # A tibble: 1 × 6
#>   row_id ENV   GEN   REP      GY    HM
#>    <int> <fct> <fct> <fct> <dbl> <dbl>
#> 1      2 E1    G1    2      2.50  46.9
set_union(set_1, set_2, set_3)
#> # A tibble: 7 × 6
#>   row_id ENV   GEN   REP      GY    HM
#>    <int> <fct> <fct> <fct> <dbl> <dbl>
#> 1      1 E1    G1    1      2.17  44.9
#> 2      2 E1    G1    2      2.50  46.9
#> 3      3 E1    G1    3      2.43  47.8
#> 4      4 E1    G2    1      3.21  45.2
#> 5      5 E1    G2    2      2.93  45.3
#> 6      6 E1    G2    3      2.56  45.5
#> 7      7 E1    G3    1      2.77  46.7
# }
