我是Rshiny的新手,我需要帮助在Rshiny中生成一些汇总统计数据。
我的任务的目标是创建一个select输入,允许用户从6个变量中选择一个。在用户选择一个变量之后,应该会生成输出以显示汇总统计信息。
下面是我的代码:
library(shiny)
library(dplyr)
library(ggplot2)
library(markdown)
library(gtsummary)
#################################################################
ui <- fluidPage(
navbarPage("",
tabPanel("Data Exploration",
sidebarLayout(
sidebarPanel(
selectInput("variable",
"Variable",
colnames(data))
),
mainPanel(
tableOutput("table")
)
)
)
)
)
#################################################################
server <- function(input, output) {
sum <- reactive({
data <- data %>%
select(input$variable) %>%
summary()
})
output$table <- renderTable(sum())
}
#################################################################
shinyApp(ui, server)每当我运行这个应用程序时,它都会生成以下代码:


基本上,我想创建一个非常简单的汇总表,其中数值变量的列名看起来就像Min、Q1、Median、Mean、Q3、Max
也许只有一个简单的表,其中分类变量的列名为Yes和No。
我也尝试过使用summaries ()函数来手动创建我的摘要,但这也给我带来了问题。
现在,实际的统计数据本身对我来说不一定很重要,因为我只想首先纠正表的错误。有谁能帮我修一下桌子吗?
发布于 2020-12-15 07:50:37
您可以使用package tidyr中的separate和pivot_wider函数来隔离指标名称和值,然后按列移动指标:
data <- data %>%
select(input$variable) %>%
summary() %>%
as.data.frame() %>%
tidyr::separate(Freq, c("Stat", "Value"), sep=":") %>%
tidyr::pivot_wider(names_from =Stat, values_from = Value)https://stackoverflow.com/questions/65297994
复制相似问题