r - 如何在 checkboxGroupInput 中使用下载数据集中的变量
问题描述
我想根据从服务器中下载的列列表创建一个动态 checkboxGroupInput
我试过全局变量 updatecheckboxGroupInput 和 RenderUi
# UI.R
sidebarLayout(
sidebarPanel(
fileInput("fileInPath",
label= h4("Import danych"), accept=("text/csv")),
radioButtons('plott','Plot',c('ggplot2'='ggplot2', 'lattice'='lattice')
),
radioButtons('format', 'Document format', c('PDF', 'HTML', 'Word'),
inline = TRUE),
downloadButton('downloadReport',label="Wygeneruj raport"),
uiOutput("ListOfColumns")
),
#Server.R
shinyServer(function(input, output) {
# 3 wczytywanie danych
dataIn <- reactive({
inFile <- input$fileInPath
if (is.null(inFile)) {
return(NULL)
}
read.table(file=inFile$datapath,sep=";",dec=",",header=T,stringsAsFactors=FALSE)
})
output$ListOfColumns <- renderUI({
columns <- colnames(dataIn)
checkboxGroupInput("Columns", "Choose columns", columns)
})}
我希望下载文件中的列列表出现在 checkboxGroupInput 中。
解决方案
你很近!
但我觉得您示例中的主要错误在倒数第二行
columns <- colnames(dataIn)
它应该是
columns <- colnames(dataIn())
工作示例
我使用了一个示例 csv 文件来测试文件读取和解析与您的示例略有不同。
ui = fluidPage(
titlePanel("Sample"),
sidebarLayout(
sidebarPanel(
fileInput("fileInPath", "Choose File",
multiple = FALSE,
accept = c("text/csv",
"text/comma-separated-values,text/plain",
".csv")),
radioButtons('plott','Plot',c('ggplot2'='ggplot2', 'lattice'='lattice')
),
radioButtons('format', 'Document format', c('PDF', 'HTML', 'Word'),
inline = TRUE),
downloadButton('downloadReport',label="Wygeneruj raport"),
uiOutput("ListOfColumns")
),
mainPanel()
)
)
#Server.R
server = function(input, output) {
# 3 wczytywanie danych
dataIn <- reactive({
req(input$fileInPath)
read.csv(file=input$fileInPath$datapath)
})
output$ListOfColumns <- renderUI({
req(dataIn())
columns <- colnames(dataIn())
checkboxGroupInput("Columns", "Choose columns",columns)
})}
shinyApp(ui,server)
我使用mtcars
可以保存到计算机的数据集对其进行了测试
write.csv(mtcars,file = "~/Desktop/Data.csv",row.names = FALSE)
推荐阅读
- anylogic - 有没有一种方法可以随机生成从数据库创建的代理?
- c++ - 在 VS Code 中使用 C++ COM/IFileDialog 时出错,而在 Visual Studio 中使用相同的代码。消息:“IID_IFileOpenDialog”未在此范围内声明
- android - 如何使用 Kotlin 将 gRPC 添加到 Android Studio?
- amazon-web-services - 是否可以在不检查 ELB 配置的情况下找出 ELB 的所有 IP 地址?
- list - Numba 列表和 NamedTuple 签名
- python - 从匹配的数据帧拆分中查找下一个
- java - 本地主机连接在springboot中被拒绝
- reactjs - React 中的持久化状态
- django - 覆盖 Django 中所有模型的保存方法
- django - 主管在 aws 上启动多个 celery 和工作进程