stat_compare_means в приложении shiny — обновлено с использованием образцов данных

#r #ggplot2 #shiny

#r #ggplot2 #блестящий

Вопрос:

У меня есть приложение shiny, в котором я создаю график различных клинических параметров. Статистический тест будет отличаться для разных клинических параметров, поскольку они содержат разные группы. Как я могу определить разные группы для stat_compare_means в зависимости от клинического параметра в выпадающем меню?

Вот приложение:https://mjellelab.shinyapps.io/SHINY_miRNA_CLINICAL /

Например, для serum_m_component я хочу сравнить все четыре группы друг с другом (кроме unknown), для этапа ISS я хочу сравнить 1vs2, 1vs3 и 2vs3.

приложение:

 data_prep <- 
structure(list(miRNA = c("hsa-let-7a-3p", "hsa-let-7a-3p", "hsa-let-7a-3p", 
"hsa-let-7a-3p", "hsa-let-7a-3p", "hsa-let-7a-3p"), ID = c("86", 
"175", "217", "394", "444", "618"), value = c(5.57979757386892, 
5.21619202802748, 5.42796072966512, -1.1390337316217, 5.06134249676025, 
4.37364284462968), Bone_disease = c("Without bone disease", "With bone disease", 
"With bone disease", "With bone disease", "With bone disease", 
"With bone disease"), Serum_M_component = structure(c(3L, 3L, 
5L, 3L, 1L, 3L), .Label = c("IgA", "IgD", "IgG", "LightChains", 
"Unknown"), class = "factor"), ISS_stage = c("Stage 3", "Stage 1", 
"Stage 3", "Stage 2", "Unknown", "Unknown")), row.names = c(NA, 
6L), class = "data.frame")


ui.miRNA.clinical <- dashboardPage(
  # Application title
  dashboardHeader(title=h4(HTML("MicroRNA expression <br/> in Multiple myeloma"))),
  dashboardSidebar(
    selectInput("p", "Clinical parameter", choices = c("Bone_disease", "Serum_M_component","ISS_stage")),
    selectInput("gene", "MicroRNA", choices = unique(data_prep$miRNA))),
  dashboardBody(
    tabsetPanel(
      tabPanel("Plot", plotOutput("myplot", width = "400px", height = "300px"))
    )
  )
)

server.miRNA.clinical <- function(input, output, session) {
  
  # filter data by Gene
  data_selected <- reactive({
    filter(data_prep, miRNA %in% input$gene)
  })
  

  output$myplot <- renderPlot({
    ggplot(data_selected(), aes_string(input$p, "value", fill = input$p))   
      geom_boxplot()   theme_classic(base_size = 12)   labs(x="Clinical parameter",y="MicroRNA expression (cpm,log2)")  
      stat_compare_means(method = "anova") 
      #method ="anova"
  })
}
  

Комментарии:

1. Пожалуйста, опубликуйте образец данных для тестирования вашей программы.

2. Пожалуйста, ознакомьтесь с обновлением данных в «data_prep»