我是新來的閃亮和r。使用閃亮教程中的文件上傳,我希望用戶在應用程序會話中分配文件名,因爲我可能會在同一個會話中加載其他文件。我不想結束會話並重新啓動,也不想在代碼中硬編碼數據集分配。我還沒有想出如何用無功輸出來做到這一點。當我分配userInput $文件名並嘗試加載表時,它只是給出userInput $文件名。我想知道這是否可能。閃亮的R文件上傳爲文件指定名稱
因此,如果我加載mtcars.csv並且userInput $ filename是「cars」,那麼我可以在其他選項卡中使用「cars」。 如果我然後用userInput $文件名「rocks」加載rocks.csv,我將能夠在其他選項卡的userInput字段中使用「rocks」。
這也將使我能夠使用userInput $文件名也許通過粘貼下載文件的名字了。
ui.r
library(shiny)
shinyUI(fluidPage(
titlePanel("Uploading Files"),
sidebarLayout(
sidebarPanel(
textInput("Filename","Name of File for Session: ", ""),
fileInput('file1', 'Choose 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'),
','),
radioButtons('quote', 'Quote',
c(None='',
'Double Quote'='"',
'Single Quote'="'"),
'"')
),
mainPanel(
tableOutput('contents')
)
)
))
server.R
library(shiny)
shinyServer(function(input, output) {
output$contents <- renderTable({
# input$file1 will be NULL initially. After the user selects
# and uploads a file, it will be a data frame with 'name',
# 'size', 'type', and 'datapath' columns. The 'datapath'
# column will contain the local filenames where the data can
# be found.
inFile <- input$file1
if (is.null(inFile))
return(NULL)
dataset <- read.csv(inFile$datapath, header=input$header, sep=input$sep,
quote=input$quote)
## This is where I get stuck because I want the dataset to be input$Filename
## newdataset <- input$Filename
data.table(dataset)
})
})
謝謝我試試看。 – user6259251