Когда использовать функции select_at, mutate_at и др.? - PullRequest
0 голосов
/ 07 мая 2018

Я играл с функциями verb_at, verb_if, verb_each из dplyr.

Примеры, которые я нашел, показывают варианты использования только для verb_if и verb_all.

Может ли кто-нибудь привести некоторые варианты использования для остальных функций.

1 Ответ

0 голосов
/ 07 мая 2018

Взгляните на ?select_vars и ?select_helpers из справки dplyr. Назначение функций verb_at состоит в том, чтобы использовать функции select_helpers для выбора переменных на основе имени или индекса переменной и применения к ней функции. Некоторые примеры:

data(iris)

# Convert all columns containing Sepal data to integers
x <- mutate_at(iris, vars(contains("Sepal")), as.integer)
head(x)
  Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1            5           3          1.4         0.2  setosa
2            4           3          1.4         0.2  setosa
3            4           3          1.3         0.2  setosa
4            4           3          1.5         0.2  setosa
5            5           3          1.4         0.2  setosa
6            5           3          1.7         0.4  setosa

# Summarize the mean of all variables containing "Sepal"
summarise_at(iris, vars(contains('Sepal')), mean)
  Sepal.Length Sepal.Width
1     5.843333    3.057333

select_at обычно не требуется, поскольку select уже ограничен и принимает select_helpers. Поскольку этот ответ говорит , одно из преимуществ использования select_at заключается в том, что он позволяет применять функцию для переименования выбранных переменных:

data(starwars)

# Select Variables
select(starwars, ends_with('Color')) %>%
    head()

# A tibble: 6 x 3
  hair_color  skin_color  eye_color
  <chr>       <chr>       <chr>    
1 blond       fair        blue     
2 NA          gold        yellow   
3 NA          white, blue red      
4 none        white       yellow   
5 brown       light       brown    
6 brown, grey light       blue 

# Select and rename variables
select_at(starwars, vars(ends_with('Color')), toupper) %>%
    head
# A tibble: 6 x 3
  HAIR_COLOR  SKIN_COLOR  EYE_COLOR
  <chr>       <chr>       <chr>    
1 blond       fair        blue     
2 NA          gold        yellow   
3 NA          white, blue red      
4 none        white       yellow   
5 brown       light       brown    
6 brown, grey light       blue 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...