1

R-package summarytools中的 descr() 函数为 R中的数值数据生成常见的集中趋势统计和离散度量。

当我在Shiny app中使用 descr() 和 by() 时,数据中包含的变量(特征)的名称会消失并且不显示。相反,名称由 Var1、Var2、Var3 等替换。

我真的不明白为什么当我在 Shiny 应用程序中实现这些代码时名称会消失(见下文)。任何的想法?

# Install packages
source("https://bioconductor.org/biocLite.R")
biocLite("ALL")
biocLite("Biobase")
install.packages('devtools')
devtools::install_github('dcomtois/summarytools')

# Load packages
library(summarytools)
library(Biobase)
library(ALL) 

# Shiny Server
server <- function(input, output, session) {
  output$summaryTable <- renderUI({
    #-- Load the ALL data
    data(ALL)  
    #-- Subset
    eset_object <- ALL [1:3,] # choose only 3 variables 
    #-- The group of interest 
    eset_groups <-"BT"
    # print(rownames (eset_object)) # print variable names
    ALL_stats_by_BT <- by(data = as.data.frame(t(exprs(eset_object))), 
                          INDICES = (pData(eset_object)[,eset_groups]), 
                          FUN = descr, stats ="all", 
                          transpose = TRUE)

    view(ALL_stats_by_BT,
         method = 'render',
         omit.headings = FALSE,
         bootstrap.css = FALSE)
  })
}

# Shiny UI
ui <- fluidPage(theme = "dfSummary.css",
                fluidRow(
                  uiOutput("summaryTable")
                )
)

# Lauch
shinyApp(ui, server)
4

1 回答 1

0

标题会导致问题,因此您需要使用:

view(ALL_stats_by_BT,
        method = 'render',
        omit.headings = TRUE, # not FALSE
        bootstrap.css = FALSE)

此外,从 gitHub 安装最新版本(今天提交)以显示所有组(这是descr()版本 < 0.8.7 的问题)

devtools::install_github("dcomtois/summarytools")

编辑

我对其进行了更多研究,发现虽然这会起作用(我正在使用示例数据框进行简化)...

server <- function(input, output, session) {
  library(summarytools)

  output$summaryTable <- renderUI({

    data(exams)

    stats_by_gender <- by(data = exams[,3:4],
                          INDICES = exams$gender, 
                          FUN = descr, stats ="all", 
                          transpose = TRUE)

    view(stats_by_gender,
         method = 'render',
         bootstrap.css = FALSE)

  })
}

...这不会(意味着变量名丢失):

server <- function(input, output, session) {
  library(summarytools)

  output$summaryTable <- renderUI({

    data(exams)

    # this time using a temporary subsetted object     
    dat <- exams[,3:4]    

    stats_by_gender <- by(data = dat,
                          INDICES = exams$gender, 
                          FUN = descr, stats ="all", 
                          transpose = TRUE)

    view(stats_by_gender,
         method = 'render',
         bootstrap.css = FALSE)

  })
}

它与summarytools检索对象名称的方式有关,我需要进一步研究它。

于 2018-07-22T22:40:47.913 回答