Je travaille avec un jeu de données que j'utilise pour développer des parcelles et gérer certaines statistiques. Voici mon jeu de données original:
> pacman::p_load(pacman, party, rio, tidyverse) > Cellphone_models <- read.csv("~/Desktop/Cellphone models.csv") > Cellphone_models <- read.csv("~/Desktop/Cellphone models.csv") > Cellphone_models Cellphone.model Dimensions Price 1 Model A 10.3 400 2 Model A 10.5 350 3 Model A 10.2 300 4 Model A 10.1 400 5 Model A 10.0 500 6 Model B 10.0 450 7 Model B 10.1 300 8 Model B 10.2 200 9 Model B 9.9 45 10 Model C 10.0 475 11 Model C 10.2 560 12 Model D 9.8 400 13 Model D 9.9 350 14 Model D 10.2 300 15 Model D 10.0 400 16 Model D 10.0 500 17 Model D 10.1 450 18 Model E 9.9 200 19 Model E 9.9 45 20 Model E 9.0 475 > Cellphone_models %>% group_by(Cellphone.model) %>% summarise_if(is.numeric, mean) # A tibble: 5 x 3 Cellphone.model Dimensions Price <fct> <dbl> <dbl> 1 Model A 10.2 390 2 Model B 10.0 249. 3 Model C 10.1 518. 4 Model D 10 400 5 Model E 9.6 240
3 Réponses :
Vous pouvez le faire en utilisant GGPLot Geom's. Voici un exemple
require(tidyverse) data(iris) mean_tb = iris %>% group_by(Species) %>% summarise_if(is.numeric, mean) ggplot() + geom_boxplot(data = iris, aes(x = Species, y= Sepal.Length)) + geom_point(data = mean_tb, aes(x=Species, y=Sepal.Length))
Comme vous le savez probablement, les parcelles de la boîte affichent la médiane des données. Puisque vous utilisez déjà dplyr code>, passons à
ggplot2 code>. Nous pouvons ajouter la moyenne avec
stat_summary code> et nous pouvons faire des comparaisons assez facilement avec
stat_compare_mesans code> à partir de
ggpubr code>.
Cellphone_models <- structure(list(Cellphone.model = structure(c(1L, 1L, 1L, 1L,
1L, 2L, 2L, 2L, 2L, 3L, 3L, 4L, 4L, 4L, 4L, 4L, 4L, 5L, 5L, 5L
), .Label = c("Model A", "Model B", "Model C", "Model D", "Model E"
), class = "factor"), Dimensions = c(10.3, 10.5, 10.2, 10.1,
10, 10, 10.1, 10.2, 9.9, 10, 10.2, 9.8, 9.9, 10.2, 10, 10, 10.1,
9.9, 9.9, 9), Price = c(400L, 350L, 300L, 400L, 500L, 450L, 300L,
200L, 45L, 475L, 560L, 400L, 350L, 300L, 400L, 500L, 450L, 200L,
45L, 475L)), class = "data.frame", row.names = c("1", "2", "3",
"4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15",
"16", "17", "18", "19", "20"))
Pour la deuxième question, vous pouvez essayer le code suivant?
library(broom) df %>% filter(Cellphone.model=="Model D" | Cellphone.model == "Model B") %>% group_by(Cellphone.model) %>% do(tidy(t.test(.$Dimensions))