J'ai une trame de données (j'ai pris un exemple de Antoher Post mais cela fonctionne pour la question)
data2 <- data.table(category = c("First","First","Others" "Others"), Frequency = c(15,15,19,20), Bloc = c(B1,B2,B1,B2)
3 Réponses :
Vous pouvez remplacer code> toutes les catégories qui ne sont pas 'd'abord' code> sur ' (code> par groupe. library(data.table)
data[, Category := replace(Category, Category != 'First', 'Other')]
data[, .(Frequency = sum(Frequency)), .(Category, Bloc)]
# Category Bloc Frequency
#1: First B1 15
#2: First B2 15
#3: Other B1 19
#4: Other B2 20
Quand j'essaie, je reçois ce message d'erreur; "Vérifiez que c'est.data.table (dt) == true. Sinon,: = et : = code> (...) est défini pour une utilisation dans J, une fois seulement et de manière particulière. Voir l'aide. Voir l'aide (": ="). "
Utilisez-vous sur les données que vous avez partagées? Vos données doivent être data.table code>. Selon le message d'erreur, il ne semble pas que c'est un data.table code>.
Une autre option sans changer le jeu de données d'origine
library(data.table) group <- "First" ingroup <- sum(data$Frequency[data$Category == group]) not_ingroup <- sum(data$Frequency[! data$Category == group]) data.table(Category = c(group, "Others"), Frequency=c(ingroup, not_ingroup) )
library(data.table)
data = data.table(Category=c("First","First","First","Second","Third", "Third", "Second"),
Frequency=c(10,15,5,2,14,20,3))
data <- data %>%
mutate(Category = case_when(
Category == 'First' ~ "First",
TRUE ~ 'Other'
)) %>%
group_by(Category) %>%
mutate(Frequency = sum(Frequency)) %>%
group_by(Category, Frequency) %>%
summarise(Category = first(Category))
Voir ce message pour les différentes options de Recovering: Stackoverflow .Com / Questions / 44590935 / ...
Je l'ai corrigé merci