我是闪亮的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)
})
})
答案 0 :(得分:0)
JCheckBox
表示相应cb.setBackground(Color.RED);
cb.setOpaque(true);
的值,因此您无法使用它来保存数据框。你可以做的是创建一个基于input$Filename
的动态命名变量(尽管应该将它重命名为textInput
。
input$Filename
将创建一个变量,其中包含您在输入框中输入的名称,该值是从文件中读取的数据集。