Функция Dcast -> Изменить порядок столбцов - PullRequest
0 голосов
/ 06 июня 2018

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

Spendings <- data %>%
    filter(Familie == "Riegel" & Jahr == "2017") %>%
    group_by(Firma, Produktmarke, `Name Kurz`) %>%
    summarise(Spendingsges = sum(EUR, na.rm = TRUE))

Spendings <- dcast(data = Spendings, Firma + Produktmarke ~ `Name Kurz`, value.var="Spendingsges")
Spendings

                Firma               Produktmarke     Apr     Aug     Dez     Feb     Jan     Jul     Jun     Mai     Mrz     Nov     Okt     Sep
                Company1           Product1          228582 1902138  725781      NA  709970      NA  265313  228177      NA      NA 1463258 4031267

Есть ли способ изменить порядок столбцов динамически ?Например, для 2018 года датафрейм короче, поэтому я не могу использовать:

Spendings <- Spendings[,c("Firma", "Produktmarke", "Jan", "Feb", "Mrz", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez")]

1 Ответ

0 голосов
/ 06 июня 2018
    Spendings_raw <- data.frame(matrix(ncol = 14, nrow = 0))
colnames(Spendings_raw) <- c("Firma", "Produktmarke", "Jan", "Feb", "Mrz", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez")
Spendings_raw

Spendings <- data %>%
    filter(Familie == "Riegel" & Jahr == "2017") %>%
    group_by(Firma, Produktmarke, `Name Kurz`) %>%
    summarise(Spendingsges = sum(EUR, na.rm = TRUE))


Spendings <- dcast(data = Spendings, Firma + Produktmarke ~ `Name Kurz`, value.var="Spendingsges")
Spendings <- rbind.fill(Spendings_raw, Spendings)

Это прекрасно работает; -).

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