gpt4 book ai didi

r - 在完成所有选择之前,我将如何隐藏操作按钮?

转载 作者:行者123 更新时间:2023-12-04 19:06:12 26 4
gpt4 key购买 nike

我想知道是否有办法隐藏我 Shiny 的应用程序上的操作按钮,直到在侧面板中显示变量选择之后。我一直无法使用按钮的 uiOutput 来实现这一点,因为它混淆了数据表,因为它认为 input$submit 是一个空值。这是到目前为止的代码:

用户界面

library(shiny)

shinyUI(pageWithSidebar(
headerPanel("CSV Viewer"),

sidebarPanel(
fileInput('file1', 'CSV File',
accept=c('text/csv', 'text/comma-separated-values,text/plain', '.csv')),


tags$hr(),

checkboxInput('header', 'Header', TRUE),

radioButtons('sep', 'Separator',
c(Comma=',',
Semicolon=';',
Tab='\t'),
'Comma'),

uiOutput('varselect'),

actionButton('submit', 'Submit')

),

mainPanel(

dataTableOutput('contents')

)
))

服务器
library(shiny)

shinyServer(function(input, output, session) {

observe({
csvfile <- input$file1

if (is.null(csvfile))
{return(NULL)}

dt <- read.csv(csvfile$datapath, header=input$header, sep=input$sep, quote=input$quote)

output$varselect <- renderUI({

checkboxGroupInput("var", "Variables", choices = names(dt), select = names(dt))

})

if (input$submit > 0) {output$contents <- renderDataTable({

isolate(dt[ ,input$var])

})}
})
})

tl;dr 我想阻止用户在选择要上传的文件之前按下“提交”按钮。事实证明这对我来说很困难。

在此先感谢您的帮助! :)

最佳答案

您可以添加 actionButton给您的 renderUI .我也整理了你的 server.R因为一切都被包裹在 observe 中这可能不是最好的前进。

library(shiny)

runApp(list(
ui = pageWithSidebar(
headerPanel("CSV Viewer"),

sidebarPanel(
fileInput('file1', 'CSV File',
accept=c('text/csv', 'text/comma-separated-values,text/plain', '.csv')),


tags$hr(),

checkboxInput('header', 'Header', TRUE),

radioButtons('sep', 'Separator',
c(Comma=',',
Semicolon=';',
Tab='\t'),
'Comma'),

uiOutput('varselect')
),

mainPanel(

dataTableOutput('contents')

)
)
,server = function(input, output, session) {


csvfile <- reactive({
csvfile <- input$file1
if (is.null(csvfile)){return(NULL)}
dt <- read.csv(csvfile$datapath, header=input$header, sep=input$sep, quote=input$quote)
dt
})

output$varselect <- renderUI({
if(is.null(input$file1$datapath)){return()}
list(
checkboxGroupInput("var", "Variables", choices = names(csvfile()), select = names(csvfile()))
, actionButton('submit', 'Submit')
)
})

output$contents <- renderDataTable({
if(is.null(input$file1$datapath)){return()}
if(input$submit > 0){
isolate(csvfile()[ ,input$var])
}
})

}

)
)

关于r - 在完成所有选择之前,我将如何隐藏操作按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23893756/

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