r - 在 Shiny 中,如果所选变量是数字变量,如何输出直方图,如果是分类变量,如何输出条形图?
问题描述
在 Shiny 中,如果所选变量是数字变量,如何输出直方图,如果是分类变量,如何输出条形图?
解决方案
您必须定义一个逻辑,哪些变量是数字的,哪些是分类的,然后您可以制作不同的图:
library(shiny)
library(ggplot2)
ui <- fluidPage(
selectInput(inputId = "variable",
label = "Variable",
choices = colnames(mtcars)),
h3(""),
plotOutput("plot")
)
server <- function(input, output, session) {
output$plot <- renderPlot({
req(input$variable)
g <- ggplot(mtcars, aes(x = !!as.symbol(input$variable)))
if (input$variable %in% c("mpg", "disp", "hp", "drat", "wt", "qsec")) {
# numeric
g <- g + geom_histogram()
} else {
# categorical
g <- g + geom_bar()
}
g
})
}
shinyApp(ui, server)
推荐阅读
- java - 如果 String 是一个对象,但不像 Array(它也是一个对象),为什么我们可以直接打印出它的值呢?
- php - 如何将 SQL Server 代理作业创建的文件的编码更改为 UTF-8?
- racket - Racket - 如何更改结构的属性值
- neo4j - Neo4j:如果至少有2个,则选择具有特定标签的相关节点
- python - 是否有任何监督聚类算法或将先验知识应用于聚类的方法?
- qt - 为什么我会收到这个 qsqldatabase 错误
- vue.js - Vue:在哪里调用 API?
- sap-successfactors - 问题 SAP Successfactors Non-Standard OCN Provider Integration(持续时间参数)
- python - 如何将小数秒转换为毫秒?
- emacs - 为 unix 键盘上的特殊键编写 emacs 键序列