#'Representación del test de Tukey mediante letras
#'
#'Crea de un compact letter display a partir de un objeto con comparaciones dos a dos de las muestras
#'
#'@param comparaciones Los datos que debe recibir son un data frame con term, filtrada para muestra_id, group1, group2 y p.adj
#'@param confianza Por defecto 0.05, ajusta el umbral a partir del cual se considera que el p valor es significativo.
#'@return El resultado es un data frame con muestra_id y letras_tukey
#'@export
letras_tukey <- function(comparaciones,confianza = 0.05){
library(multcompView)
library(tidyverse)
# Se eliminan NAs y las columnas no necesarias
comparaciones_limpio <- comparaciones %>%
filter(!is.na(term)) %>%
select(group1, group2, p.adj)
# Se revierten las comparaciones (a-b -> b-a)
comparaciones_espejo <- tibble("group1" = comparaciones_limpio$group2,
"group2" = comparaciones_limpio$group1,
"p.adj" = comparaciones_limpio$p.adj)
# Se crea un objeto con todas las comparaciones para poder montar una matriz
# de correlacion
comparaciones_completo <- bind_rows(comparaciones_limpio,
comparaciones_espejo) %>%
pivot_wider(names_from = "group1",
values_from = "p.adj")
# Se crea un string de muestras
orden <- comparaciones_completo %>%
select(!any_of("group2")) %>%
colnames() %>%
data.frame() %>%
rename("group2" = ".")
# Se utiliza el string de muestras para ordenar los dos ejes de la matriz con
# el mismo criterio
comparaciones_ordenado <- full_join(orden,
comparaciones_completo,
by = "group2") %>%
column_to_rownames("group2") %>%
mutate(across(everything(),~replace_na(.x,1)))
# Se crea la matriz de correlación para alimentar a la función multcompLetters
comparaciones_matriz <- as.matrix(comparaciones_ordenado)
# Se generan las letras
letras <- multcompLetters(
comparaciones_matriz,
compare = "<",
threshold = confianza,
Letters = letters,
reversed = FALSE
)
letras_comodo <- letras[["Letters"]] %>%
as.data.frame() %>%
rownames_to_column(var = "muestra_id") %>%
rename("letras_tukey" = ".")
return(letras_comodo)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.