Какая польза от $ в R - PullRequest
0 голосов
/ 26 декабря 2018

Что означает. $ Avg?

conditional_avg <- galton_heights %>% 
                         filter(round(father) == 72) %>%
                         summarize(avg = mean(son)) %>%
                         .$avg

1 Ответ

0 голосов
/ 26 декабря 2018

.$ используется для извлечения столбца avg как vector.Здесь . представляет данные, поступающие из lhs из %>%.Это может быть vector или list или data.frame.В данном случае это data.frame с одним столбцом 'avg'.Мы используем $ или [[, чтобы извлечь столбец как vector.Для этого есть также удобная функция pull

library(tidyverse)
galton_heights %>%
    filter(round(father) == 72) %>%
    summarize(avg = mean(son))  %>%     
    pull(avg)

В качестве воспроизводимого примера, используя data(mtcars), если мы не извлечем столбец 'avg', это будетdata.frame с одним столбцом

mtcars %>%
   summarise(avg = mean(hp)) %>% 
   str
# 'data.frame': 1 obs. of  1 variable:
#$ avg: num 147

Извлечение столбца возвращается как vector.

mtcars %>% 
     summarise(avg = mean(hp)) %>% 
     .$avg
#[1] 146.6875

mtcars %>% 
     summarise(avg = mean(hp)) %>%
     pull
#[1] 146.6875
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...