2017-01-25 5 views
0

Я хочу рассчитать среднее значение столбца внутри функции. Давайте попробуем в этом примере:Как рассчитать среднее значение столбца внутри функции

test = data.frame(value = c(231,43,12,342,123,543,56,122,321,222), 
       category = c("A","B","A","B","A","A","A","B","B","B")) 


    fun <- function(AorB) { 
    example <- test %>% 
    filter(category == AorB) %>% 
    select(value) 
    ## %>%   (here I want to add mean calculation) 
    ## mean()  (it is not possible) 
    ## sum()/nrow (it is not possible) 
    } 

    solve <- fun("A") 

Вся проблема с «средним()» и «суммы()/nrow()» является то, что «средняя()» и «nrow()» необходимо указать data.frame. Все расчеты внутри функции, так что я не могу указать data.frame так:

mean(example$value) 
+0

Я думаю, вам нужно использовать 'example <- test %>% filter (category == AorB)%>% summary (mean = mean (value)' –

+0

Да, именно это работает! Большое спасибо. и я не знаю, как я могу дать вам большой палец, когда вы добавляете только комментарий? – Sin

+0

Я отправил его в качестве ответа, если вы хотите поблагодарить меня за это. –

ответ

0
предложение

Per Sin в комментариях ...

Я думаю, вам нужно использовать:

example <- test %>% filter(category == AorB) %>% summarise(mean = mean(value)) 

Для dplyr вам необходимо вызвать (и назвать) эти итоговые функции в функции summary().

Смежные вопросы