Shiny R文件上传为文件指定名称

时间:2016-04-27 02:57:35

标签: r shiny

我是闪亮的r和r。使用闪亮教程中的文件上载,我希望用户在应用程序会话中分配文件名,因为我可能在同一会话期间加载其他文件。我不想结束会话并重新启动,也不想对代码中的数据集分配进行硬编码。我还没想出如何用无功输出做到这一点。当我分配userInput $ filename并尝试加载表时,它只给出userInput $ filename。我想知道这是否可行。

因此,如果我加载mtcars.csv并且userInput $ filename是" cars"我可以在其他标签中使用" cars"。 如果我然后使用" rocks"的userInput $ filename加载rocks.csv,我将能够使用" rocks"在其他选项卡的userInput字段中。

这也使我能够使用userInput $ filename来粘贴下载带有名字的文件。

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)

  })
})

1 个答案:

答案 0 :(得分:0)

JCheckBox表示相应cb.setBackground(Color.RED); cb.setOpaque(true); 的值,因此您无法使用它来保存数据框。你可以做的是创建一个基于input$Filename的动态命名变量(尽管应该将它重命名为textInput

input$Filename

将创建一个变量,其中包含您在输入框中输入的名称,该值是从文件中读取的数据集。