我需要在dataSource1
,dataSource2
和dataSource3
内调用大约50个文件。而不是将它全部复制到每个switch
语句中,如何使用变量,所以我只需要在代码顶部输入一次?我在server.R
内为一个闪亮的应用程序调用它。
dataSource1 <- reactive({
switch(input$dataSelection1,
"File1" = File1,
"File2" = File2,
"File3" = File3,
"File50" = File50
)
)
相反,我希望:
dataSource1 <- reactive({
switch(input$dataSelection1,
FileNumber = File
)
)
dataSource2 <- reactive({
switch(input$dataSelection1,
FileNumber = File
)
)
dataSource2 <- reactive({
switch(input$dataSelection1,
FileNumber = File
)
)
答案 0 :(得分:3)
您可以使用将返回命名对象值的get
函数。假设input$dataSelection1
具有变量的完整名称,您的反应函数可能是这样的:
dataSource1 <- reactive({
get(input$dataSelection1)
)
它将返回与名称匹配的变量的内容。
如果input$dataSelection1
只包含一个数字,您可以使用paste0
或sprintf
函数来构建变量的名称:
get(paste0('File',input$dataSelection1)) # it will create File1, File2...
sprintf('File%04d',input$dataSelection1) # add zeros before the number File0001
我希望它可以帮到你。