Package BlandAltmanLeh

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Anne-Laure Guinet
Messages : 15
Enregistré le : 10 Mai 2016, 13:17

Package BlandAltmanLeh

Messagepar Anne-Laure Guinet » 29 Déc 2016, 14:19

Bonjour,

Je cherche à modifier les options graphiques de mon Bland-Altman plot.
Je souhaiterais associer une couleur différente aux variables en fonction d'une sous-catégorie (en l'occurrence sexe F ou M).
Mon fichier de données se nomme "vigo", les variables sont : Num, Sex, True, MTT, Diff ; respectivement pour le numéro d'identification du patient, son sexe, ses mesures obtenues avec un premier instrument, ses mesures obtenues avec un second instrument, la différence MTT-True. Je ne sais pas comment vous le joindre ici.

Voici mon code, qui s'exécute très bien.

Code : Tout sélectionner

library(BlandAltmanLeh)
library(readxl)



#Import data
setwd("~/R/publi Vigotsky")
vigo<-read_excel('data.xlsx', col_names = TRUE)


#Bland-Altman Plot
bland.altman.plot(vigo$True, vigo$MTT, mode = 1, xlab="Average of MTT and true hip extension (°)", ylab="Difference between MTT and true hip extension (°)")
bland.altman.stats(vigo$True, vigo$MTT)



Autre question :
Quand je run library(ggplot2), j'obtiens :

Code : Tout sélectionner

> library(ggplot2)
Error: Ceci est R 3.0.2, le package ‘ggplot2’ nécessite >= 3.1

Alors que dans Help<-Check for updates, je suis à jour des MAJ.
Quelqu'un a peut-il me dire comment mettre à jour R sous RStudio ?

Merci d'avance,

Anne-Laure

Mickael Canouil
Messages : 1315
Enregistré le : 04 Avr 2011, 08:53
Contact :

Re: Package BlandAltmanLeh

Messagepar Mickael Canouil » 29 Déc 2016, 15:24

Bonjour,

Un petit extrait du jeu de données serait beaucoup plus pratique pour apporter une réponse précise: viewtopic.php?f=1&t=3302

Pour votre première question, si ce qui est définit dans le package ne le permet pas via un argument, vous avez deux possibilités: 1) récupérer le code source (CRAN) et faire vos modifications (où nous pourrons éventuellement aider); 2) créer un data.frame contenant les valeurs (https://en.wikipedia.org/wiki/Bland%E2%80%93Altman_plot) pour le graphique et utiliser les options classiques de R (ou ggplot2) pour obtenir le résultat souhaité.

A la question "Quelqu'un a peut-il me dire comment mettre à jour R sous RStudio ? ", il suffit de mettre à jour Rstudio (je ne suis pas un utilisateur de celui-ci) en principe. (https://www.google.fr/search?q=mettre+% ... TyB5igsJgB)

Petite suggestion/recommandation:

Code : Tout sélectionner

fortunes::fortune(343)



EDIT: Depuis le source du package. Ainsi il suffit d'ajouter un "aesthetic" colour (ou color), selon vos groupes, définie comme une variable factoriel dans le data.frame "values" créé à l'intérieur de la fonction "bland.altman.ggplot2", comme ci-dessous avec un argument additionnel "colour"

Code : Tout sélectionner

library(BlandAltmanLeh)
bland.altman.ggplot2 <- function(group1, group2, colour, two, mode, conf.int,
                              silent, sunflower, geom_count, ...){
    if(sunflower)
        warning("bland.altman.plot: No sunflower option for ggplot2 implemented.")
   
    ba <- bland.altman.stats(group1 = group1, group2 = group2, two=two,
                             mode = mode, conf.int=conf.int)
    if(!requireNamespace("ggplot2"))
        stop("Could not load ggplot2. Sorry.")
    values <- data.frame(m = ba$means, d = ba$diffs, colour = colour)
    geom_my <- if(geom_count) ggplot2::geom_count
               else ggplot2::geom_point
    m <- NULL; d <- NULL #this is useless but helps with CRAN tests ;-(
    p <- ggplot2::ggplot(values, ggplot2::aes(x=m, y=d, colour = colour))+
         geom_my()+
         ggplot2::geom_hline(yintercept=ba$lines, linetype=2, size=1.0)+
         ggplot2::xlab("mean of measurements")+
         ggplot2::ylab("difference")
    if(conf.int>0){
        p <- p+ggplot2::geom_hline(yintercept=ba$CI.lines, linetype=2, size=0.7)
    }
    #print(p)   # deleted after version 0.2.1
    return(p)
}


Code : Tout sélectionner

A <- c(-0.358, 0.788, 1.23, -0.338, -0.789, -0.255, 0.645, 0.506,
0.774, -0.511, -0.517, -0.391, 0.681, -2.037, 2.019, -0.447,
0.122, -0.412, 1.273, -2.165)
B <- c(0.121, 1.322, 1.929, -0.339, -0.515, -0.029, 1.322, 0.951,
0.799, -0.306, -0.158, 0.144, 1.132, -0.675, 2.534, -0.398, 0.537,
0.173, 1.508, -1.955)
C <- factor(sample(c(0, 1), 20, replace = TRUE))

bland.altman.ggplot2(A, B, colour = C, two=1.96, mode=1,
    graph.sys="base", conf.int=0, silent=TRUE,
    sunflower = FALSE, geom_count=FALSE)


Cordialement,
Mickaël
mickael.canouil.fr | rlille.fr

Anne-Laure Guinet
Messages : 15
Enregistré le : 10 Mai 2016, 13:17

Re: Package BlandAltmanLeh

Messagepar Anne-Laure Guinet » 12 Avr 2017, 15:13

Je viens seulement de voir votre réponse !
Merci beaucoup, j'ai testé et réalisé les quelques modifications pour que cela matche avec mon jeu de données mais cela fonctionne parfaitement ! Je vais étudier la fonction que vous avez créée car je n'ai pas ce niveau en R (je n'ai pas tout compris), mais j'adore apprendre.

Encore merci,

Anne-Laure


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité

cron