gpt4 book ai didi

r - 使用 input$ 调用数据集

转载 作者:行者123 更新时间:2023-12-04 13:27:01 25 4
gpt4 key购买 nike

假设我的数据集中有 2 列,并且我想根据我们所在的列输出直方图和摘要,目前我每个输出有 2 个 if 语句检查输入等于什么。

ui <- fluidPage(
titlePanel("First iteration"),
sidebarLayout(
sidebarPanel("Sidebar Panel",
selectInput("typetoshow", "Choose what you want to display",
choices = c("pts", "upts"))
),
mainPanel("main panel",
plotOutput("hist"),
verbatimTextOutput("sum")
)
)
)

server <- function(input, output){
output$hist <- renderPlot({
if (input$typetoshow == "pts"){
hist(data$pts)
}
if (input$typetoshow == "upts"){
hist(data$upts)
}
})
output$sum <- renderPrint({
if (input$typetoshow == "pts"){
summary(data$pts)
}
if (input$typetoshow == "upts"){
summary(data$upts)
}
})
}
我试着做
hist(data$input$typetoshow)
但是它给了我一个错误,说直方图中的“x 必须是数字”并显示输出摘要为 NULL,有没有办法做到这一点而不做很多 if 语句?我将一次处理 10 多列,所以我希望代码简洁。

最佳答案

我们可以使用 req在顶部,然后使用 [[根据“input$typetoshow”中的值对数据集列进行子集化

server <- function(input, output){
output$hist <- renderPlot({
req(input$typetoshow)


hist(data[[input$typetoshow]])

})
output$sum <- renderPrint({
req(input$typetoshow)

summary(data[[input$typetoshow]])

})

关于r - 使用 input$ 调用数据集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67875889/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com