基于上载文件的变量或R中的默认数据集的数据分析
我想制作一个闪亮的应用程序,用户可以上传自己的rda/rds文件或使用默认数据集。输入选择将根据他们想要使用的是向下数据还是默认数据而改变 例如,在我的代码中,我希望mtbSelection的选项根据conditionalPanel上的值而改变 我在理解如何在服务器函数中加载.rda/.rds文件时遇到问题,我不确定updateSelectInput为什么不起作用。任何帮助都将不胜感激基于上载文件的变量或R中的默认数据集的数据分析,r,shiny,shiny-server,R,Shiny,Shiny Server,我想制作一个闪亮的应用程序,用户可以上传自己的rda/rds文件或使用默认数据集。输入选择将根据他们想要使用的是向下数据还是默认数据而改变 例如,在我的代码中,我希望mtbSelection的选项根据conditionalPanel上的值而改变 我在理解如何在服务器函数中加载.rda/.rds文件时遇到问题,我不确定updateSelectInput为什么不起作用。任何帮助都将不胜感激 library(shiny) library(shinythemes) ui <- fluidPage
library(shiny)
library(shinythemes)
ui <- fluidPage(
theme = shinytheme("paper"),
checkboxInput("default_data", "Would you like to use default datasets?", value = TRUE),
conditionalPanel(condition = "input.default_data == true",
selectizeInput(inputId = "mtb2", label = "Please choose a metabolomic dataset",
choices = "mtb2",
options = list(placeholder = 'Select a default metabolomic file below',onInitialize = I('function() { this.setValue(""); }'))
),
selectizeInput(inputId = "geneExp2", label = "Please choose a transcriptome dataset",
choices = "geneExp2",
options = list(placeholder = 'Select a default transcriptome file below',onInitialize = I('function() { this.setValue(""); }'))
)
),
conditionalPanel(condition = "input.default_data == false",
fileInput(inputId = "file_mtb", label = "Please upload a metabolomic dataset",
multiple = FALSE, accept = c('.RData', '.rda', '.rds'), placeholder = " No file selected"
),
fileInput(inputId = "file_ge", label = "Please upload a transcriptome dataset",
multiple = FALSE, accept = c('.RData', '.rda', '.rds'), placeholder = " No file selected"
)
),
selectInput("mtbSelection", strong("Select a metabolite of interest"), choices = "",
multiple = FALSE)
)
server <- function(input, output, session) {
UploadMtbData <- reactive({
infile <- input$file_mtb
if (is.null(infile)){
return()
} else {
return(readRDS(infile$datapath))
}
})
observe({
if (is.null(input$file_mtb)) #makes sure that the uploaded file is not null
return()
obj<-switch(input$file_mtb,
mtb2,
infile)
var.opts <- colnames(obj)
updateSelectInput(session, "mtbSelction", choices = var.opts)
})
}
shinyApp(ui = ui, server = server)
库(闪亮)
图书馆(shinythemes)
uiUpdate:我更新了if语句。非常重要的是,由于输入错误,updateSelectInput无法工作!
下面是生成我使用的虚拟数据的代码:
data(cars)
saveRDS(cars,'cars.rds')
我建议使用以下服务器代码(rest可以保持原样):
serverUpdate:我更新了if语句。非常重要的是,由于输入错误,updateSelectInput无法工作!
下面是生成我使用的虚拟数据的代码:
data(cars)
saveRDS(cars,'cars.rds')
我建议使用以下服务器代码(rest可以保持原样):
server我用上面的服务器代码再次运行了该应用程序,但在“66:stop,65:readRDS”上出现了“警告:readRDS中的错误:错误的'file'参数”。有没有关于如何解决这个问题的线索?感谢上面的服务器代码^^我更新了代码,现在应该可以工作了,并添加了虚拟数据CreationAnk,谢谢!目前,我只是使用全局环境中的一个数据集作为默认数据集。如何将其预加载到Shiny中,以供在其全局环境中没有数据集的用户使用?那么,在您的评论“#在这里加载您的数据”后面应该有什么代码呢?提前谢谢!!您是否计划发布应用程序,即用户将通过web使用该应用程序?或者您想分发应用程序文件,用户将通过R/RStudio启动应用程序?您只需将默认数据集保存并作为txt/csv或RDS数据分发,然后执行以下操作:readRDS('cars.RDS')
或read.table('cars.csv')
如果要发布应用程序,我该怎么办?可以在我的大学服务器上访问该应用程序。我使用上述服务器代码再次运行了该应用程序,但在“66:stop,65:readRDS”上出现了“警告:readRDS中的错误:错误的'file'参数”。有没有关于如何解决这个问题的线索?感谢上面的服务器代码^^我更新了代码,现在应该可以工作了,并添加了虚拟数据CreationAnk,谢谢!目前,我只是使用全局环境中的一个数据集作为默认数据集。如何将其预加载到Shiny中,以供在其全局环境中没有数据集的用户使用?那么,在您的评论“#在这里加载您的数据”后面应该有什么代码呢?提前谢谢!!您是否计划发布应用程序,即用户将通过web使用该应用程序?或者您想分发应用程序文件,用户将通过R/RStudio启动应用程序?您只需将默认数据集保存并作为txt/csv或RDS数据分发,然后执行以下操作:readRDS('cars.RDS')
或read.table('cars.csv')
如果要发布应用程序,我该怎么办?它可以在我的大学服务器上访问