En supposant que nous ayons
df$sig <- factor(df$sig, levels=sig.fac)
comment quelqu'un pourrait-il obtenir les deux suivants?
sig.size <- c("In neither (n = 2)", "In neither (n = 2)", "In both (n = 1)"
"T1 vs Ta (n = 3)", "T1 vs Ta (n = 3)", "T1 vs Ta (n = 3)",
"T2 vs T1 (n = 4)", "T2 vs T1 (n = 4)", "T2 vs T1 (n = 4)", "T2 vs T1 (n = 4)")
sig.fac <- c("T1 vs Ta (n = 3)", "T2 vs T1 (n = 4)", "In both (n = 1)", "In neither (n = 2)")
Ceci est un extrait des données, puisque le vector sig contient plus de 10 000 éléments. J'ai essayé
en utilisant table (sig) et une double boucle for en combinaison avec gsub et paste0 mais n'a pas pu obtenir quoi que ce soit. Le truc c'est que j'aimerais passer cette automatisation dans une fonction
qui génère des nuages de points. Pour des raisons de cohérence, j'ai besoin de sig.fac pour avoir cet ordre spécifique, afin de définir les niveaux de facteurs avant de faire le ggplot. par exemple. avec:
sig <- c("In neither", "In neither", "In both",
"T1 vs Ta", "T1 vs Ta", "T1 vs Ta",
"T2 vs T1", "T2 vs T1", "T2 vs T1", "T2 vs T1")
Merci d'avance pour la solution.
3 Réponses :
sig.tbl <- sig.tbl[match(names(sig.tbl), c("T1 vs Ta", "T2 vs T1", "In both", "In neither"))]
sprintf("%s (n = %s)", names(sig.tbl), sig.tbl)
# [1] "T1 vs Ta (n = 3)" "T2 vs T1 (n = 4)" "In both (n = 1)" "In neither (n = 2)"
Alternativement, en utilisant une approche ordonnée
library(tibble)
library(dplyr)
library(glue)
df = tibble(sig = sig) %>% count(sig) %>% mutate(var = glue('{sig} (n = {n})'))
unique(df$var)
[1] "In both (n = 1)" "In neither (n = 2)" "T1 vs Ta (n = 3)" "T2 vs T1 (n = 4)"
Nous pourrions utiliser coller pour ce problème
sig <- c("In neither", "In neither", "In both",
"T1 vs Ta", "T1 vs Ta", "T1 vs Ta",
"T2 vs T1", "T2 vs T1", "T2 vs T1", "T2 vs T1")
sig.tbl <- table(sig)
Ou empiler la table en deux colonnes ensemble de données et coller
with(stack(sig.tbl), paste0(ind, " (n = ", values, ")"))
paste0(names(sig.tbl), " (n= ", sig.tbl, ")") #[1] "In both (n= 1)" "In neither (n= 2)" "T1 vs Ta (n= 3)" #[4] "T2 vs T1 (n= 4)"