Проблемы с функцией перегруппировки в R - PullRequest
0 голосов
/ 09 октября 2019

Я пытаюсь создать функцию, которая ищет определенный столбец в наборе данных, чтобы упростить создание столбчатых диаграмм из набора данных задержки полета, который я собрал.

Я написал код для построения функции группировщика. В нем не было ошибок, поэтому я написал код для своего графика, который я хотел сгенерировать. Когда я запустил его, он заявил, что не может найти функцию 'regroup

GrouperFunc <- function(df, ...) df %>% regroup(list(...)) 

AirPlot <- function(departure, arrival, groupon){
    # Departure and arrival can be cities that are being entered.
    departCode <- AirportCode(departure)
    arriveCode <- AirportCode(arrival) # Call our earlier AirportCode function to get the airport ID 

    tempDB <- subset(flights, ORIGIN_AIRPORT_ID == departCode & DEST_AIRPORT_ID == arriveCode) # Only get flights for our 
    grouped <- GrouperFunc(tempDB, groupon)                                                       # flight path
    # Use our GrouperFunc to have dplyr group our data into categories   
    summaryDF <- summarize(grouped, mean = mean(ARR_DELAY)) # Call summarize from our grouped data frame

    # Now that the data is in a good format, create the ggplot bar chart

    finalBarPlot <- ggplot(summaryDF, aes_string(x=groupon, y='mean')) +
        geom_bar(color="black", width = 0.2, stat = 'identity') +
        guides(fill=FALSE)+
        xlab(groupon) + 
        ylab('Average Delay (minutes)')+
        ggtitle((paste('Flights from', departure, 'to', arrival)))

    return(finalBarPlot)
}
AirPlot('Dallas', 'Chicago', 'UNIQUE_CARRIER')
 # Hide Traceback

 # Rerun with Debug
 # Error in regroup(., list(...)) : could not find function "regroup"

. Это должно было привести к появлению гистограммы, дающей мне среднюю задержку по Carrier.

1 Ответ

0 голосов
/ 09 октября 2019

Как сказал @ r2evans, regroup устарела в новой версии dplyr. Теперь мы используем вместо group_by_. Таким образом, код должен выглядеть так:

GrouperFunc <- function(df, ...) df %>% group_by_(...)

Другими словами,

перегруппировать (список (...)) становится group_by _ (...)

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