Если вы хотите выбрать строки из группы на основе групповых критериев , вам потребуется какой-то объект, который определяет критерии для каждой группы.Это можно сделать с помощью data.frame (criteria_by_group
в приведенном ниже коде).
library(dplyr)
#>
#> Attaching package: 'dplyr'
#> The following objects are masked from 'package:stats':
#>
#> filter, lag
#> The following objects are masked from 'package:base':
#>
#> intersect, setdiff, setequal, union
library(tibble)
df <- tribble(
~group_col, ~value_col, ~criteria_col,
"Name1", "Some Val", "Criteria1",
"Name1", "Unwanted", "Not Criteria1",
"Name2", "Some Val2", "Criteria2",
"Name2", "Unwanted", "Not Criteria2"
)
criteria_by_group <- tribble(
~group_col, ~group_criteria,
"Name1", "Criteria1",
"Name2", "Criteria2"
)
df <- left_join(df, criteria_by_group, by = "group_col")
df
#> # A tibble: 4 x 4
#> group_col value_col criteria_col group_criteria
#> <chr> <chr> <chr> <chr>
#> 1 Name1 Some Val Criteria1 Criteria1
#> 2 Name1 Unwanted Not Criteria1 Criteria1
#> 3 Name2 Some Val2 Criteria2 Criteria2
#> 4 Name2 Unwanted Not Criteria2 Criteria2
df %>%
group_by(group_col) %>%
filter(criteria_col == group_criteria[1])
#> # A tibble: 2 x 4
#> # Groups: group_col [2]
#> group_col value_col criteria_col group_criteria
#> <chr> <chr> <chr> <chr>
#> 1 Name1 Some Val Criteria1 Criteria1
#> 2 Name2 Some Val2 Criteria2 Criteria2
Создано в 2019-02-27 с помощью пакета Представить (v0.2.1)