Что означает набор данных%>% rename (!! vars) в R? - PullRequest
0 голосов
/ 28 мая 2020

Я новичок в R. Поэтому, когда я читал какой-то код R, я не мог понять, что означает этот символ, например !! в коде dataset %>% rename(!!vars). Может ли кто-нибудь помочь мне в этом? Спасибо.

Ответы [ 2 ]

4 голосов
/ 28 мая 2020

Оператор взрыва !! из пакета rlang вызывает раннюю оценку объекта. В семействе пакетов tidyverse он используется для включения подстановки переменных в конвейерах кода.

aVariable <- sym("mpg")

library(dplyr)
mtcars %>% group_by(am) %>%
     summarise(mean = mean(!!aVariable))

... и вывод:

# A tibble: 2 x 2
     am  mean
* <dbl> <dbl>
1     0  17.1
2     1  24.4
> 

Для получения дополнительных сведений о функциях принуждения прочтите rlang nse-force .

3 голосов
/ 28 мая 2020

Stataq,

Для новичка ie вы забрели в глубокую воду. !! является частью нестандартной оценки (NSE). Это расширенный топи c, который описан в Hadley Wickham's Advanced R в разделе MetaProgramming : https://adv-r.hadley.nz/metaprogramming.html

Если только вы знакомы с NSE на каком-то другом компьютерном языке - вам будет сложно изучить его. Есть ли проблема, которую вы не можете решить прямо сейчас, если не поймете !!?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...