Je voulais savoir s'il y a une fonction dans laquelle cela m'aidera à fusionner deux rangées. À l'heure actuelle, mes données sont dans la forme suivante
Type de voiture | Pousser | Vente | Mois |
---|---|---|---|
Civique | 120 | 67 | Juin |
Ville | 192 | 112 | Juin |
Si possible, j'aimerais que les données prennent cette forme:
Type de voiture | Pousser | Vente | Mois |
---|---|---|---|
Civic + City | 312 | 179 | Juin |
J'ai essayé la fonction d'agrégat, qui fonctionne, mais elle ne manipule pas l'ensemble du cadre de données.
Toute conduite serait appréciée. Merci!
Voici une solution dplyr
. Il utilise une fonction auxiliaire f
pour séparer les cas de vecteurs numériques et de caractères et applique la transformation nécessaire.
library(dplyr)
f <- function(x){
if(is.numeric(x))
sum(x)
else if(any(x[-1] != x[1]))
paste(x, collapse = "+")
else x[1]
}
df1 %>%
group_by(Month) %>%
summarise(across(everything(), f)) %>%
relocate(Month, .after = last_col())
## A tibble: 1 x 4
# Car_Type Prod Sale Month
# <chr> <int> <int> <chr>
#1 Civic+City 312 179 June