объединить _n и _mean в функции - PullRequest
0 голосов
/ 29 августа 2018

Я пытаюсь написать функцию, которая суммирует две метрики на основе Sepal.Length и Sepal.Year, это была моя попытка. Я поступаю неправильно?

df = structure(list(Sepal.Length = c("short","short", "long", "short"),
Sepal.Width = c("wide", "narrow", "wide", "narrow"), 
Petal.Length = c(1.4, 1.8, 1.3, 1.5), 
Petal.Width = c(0.4, 0.7, 0.5, 0.2),                                                                                                             
Species = structure(c(1L, 1L, 1L, 1L), 
.Label = c("setosa","versicolor", "virginica"), class = "factor")),
.Names = c("Sepal.Length", "Sepal.Width", "Petal.Length", "Petal.Width", "Species"),                                                                                                                                                                                                
row.names = c(NA, 4L), class = "data.frame")                                                                                                                                                                                                                                                            

mysummary <- function(df, Criteria1, Criteria2, Metric1, Metric2){
    df %>%
        group_by(.dots=c(Criteria1,Criteria2)) %>%
        summarise_each(funs(mean, n()),Metric1,Metric2) %>%
        filter(paste(Metric1,"_n") > 3) %>%
        arrange(desc(paste(Metric1,"_mean")))}

mysummary(df,"Sepal.Length","Sepal.Width","Petal.Length","Petal.Width")

Результаты будут: Короткая Широкая 1.4 0.4 Короткая Узкая 1,65 0,45 Длинный широкий 1,3 0,5

1 Ответ

0 голосов
/ 29 августа 2018

Условное среднее можно найти с помощью приведенного ниже кода

result <- summarise(group_by(Df_name,c("Year","Name")), Metric1_mean=mean(Metric1),Metric2_mean = mean(Metric2))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...