我有多个包含.sas7bdat
个文件的文件夹。我想创建一个闪亮的应用程序,在其中我想通过selectInput
函数中的renderUI
提供文件夹名称。我找到了一个答案,可以从中找到可以选择文件夹的部分,但是现在我想读取文件夹中的数据并对其进行分析。
我尝试使用从dir
函数生成的输出,但是它不起作用。请在下面查看我的代码。
library(shiny)
ui <- fluidPage(
titlePanel("Folder Selector"),
fluidRow(
sidebarPanel(
uiOutput("select.folder")
),
mainPanel(
h4("output$dir"),
verbatimTextOutput("dir"),br()
)
)
)
server <- function(input, output){
root <- 'C:/Users/Username/Documents/Mylearnings/data'
output$select.folder <- renderUI(expr = selectInput(inputId = 'folder.name',
label = 'Folder Name',
choices = list.dirs(path = root,
full.names = FALSE,
recursive = FALSE)))
dir <- reactive({
paste0(root,input$folder.name)
})
output$dir <- renderPrint(dir())
}
input.sas <- function(ds)(
read_sas(str_c(dir,"/",ds,".sas7bdat"))
)
a <- input.sas(data_a)
}
shinyApp(ui = ui, server = server)
例如,如果我删除了上述代码的以下部分,那么结果将按预期在output$dir
中出现,
input.sas <- function(ds)(
read_sas(str_c(dir,"/",ds,".sas7bdat"))
)
a <- input.sas(data_a)
但是我希望将其输出存储在dir
中,并可以通过str_c
函数进行传递。
它给了我以下错误。
Error in stri_c(..., sep = sep, collapse = collapse, ignore_null = TRUE) :
object 'data_a' not found
我们非常感谢您的帮助。预先谢谢你。