标题显示我得到一个非常常见的错误。然而,它是在我闪亮的应用程序中,我不知道发生了什么。
我有一个输入文件,其中包含一列中的项目列表以及第二列中的.csv文件的名称。这些csv文件位于app文件夹的数据目录中。触发应用程序时,系统会要求用户输入包含数据集/项目列表的文件。该列表在第一个选项卡中打开。我的目标是单击特定行,即项目名称,相应的.csv文件应在第二个选项卡中打开。当我第一次单击时,相应的csv文件将在第二个选项卡中打开,但当我返回第一个选项卡并再次单击时,它会给我以下错误:
Error in file(file, "rt") : invalid 'description' argument
我附上了我的所有代码和相应的文件。
ui.R
dashboardPage(
dashboardHeader(title = 'Title',titleWidth = 500),
dashboardSidebar(width = 500,
fluidRow(
column(6, div(style = "height:10px"),
fileInput(inputId = 'inputdataset', label = 'Input Datasets', accept = c('csv','tsv','txt')))
)
),
dashboardBody(
tabsetPanel(type="tabs", id = "tabvalue",
tabPanel(title = "Project List", value='tab',DT::dataTableOutput('projects')),
tabPanel(title = "Input Table", value = 'tab1', DT::dataTableOutput('table'))
)
)
)
server.R
library(shiny)
library(shinydashboard)
options(shiny.maxRequestSize = 30*1024^2)
shinyServer(function(input, output, session){
# read in initial data input.csv i.e. a file containing list of projects
# this file has a column of projects and a column of corresponding csv files
# the third column in the table i.e. 'limma' specifies the names of the csv file
# the data directory of the app folder contains those .csv files
datainput <- reactive({
infile <- input$inputdataset
if(is.null(infile))
return(NULL)
read.csv(infile$datapath,check.names=F)
})
# output list of projects in projects tab
# you can select any of the projects
output$projects <- DT::renderDataTable({
DT::datatable(datainput(), selection = 'single')
})
# go to tab1 when a project is selected
observe({
s <- input$projects_rows_selected
if(length(s)){
updateTabsetPanel(session = session, inputId = "tabvalue", selected = 'tab1')
}
})
# when a project is selected, the corresponding limma file is opened
datasetInput <- reactive({
d <- datainput()
s <- input$projects_rows_selected
dat <- d[s, , drop = FALSE]
limma <- as.character(dat$limma)
file <- paste('data/',limma,sep='')
dd <- read.csv(file=file)
dd
})
# output data for selected project in tab1
output$table <- DT::renderDataTable({
DT::datatable(datasetInput(),
selection = 'single')
})
})
输入文件:input.csv如下所示:
Project,limma
Hdac3KO,Hdac3KO.csv
Ezh2KO,Ezh2KO.csv
这两个项目的.csv文件位于应用程序的data / dir中,如下所示:
这是项目1文件,Hdac3KO.csv:
ID,SYMBOL,ENTREZID,ENSEMBL
17278840,Mir376a,723855,NA
17350196,Scgb3a2,117158,ENSMUSG00000038791
17278838,Mir376b,723934,ENSMUSG00000076006
17326069,Retnla,57262,ENSMUSG00000061100
17315245,Krt18,16668,ENSMUSG00000023043
这是项目2文件,Ezh2KO.csv:
ID,SYMBOL,ENTREZID,ENSEMBL
17278779,NA,NA,NA
17255543,Gm53,193022,NA
17335467,Cdkn1a,12575,ENSMUSG00000023067
17273304,Cbr2,12409,ENSMUSG00000025150
我真的很感激任何帮助。
答案 0 :(得分:0)
我使用的是旧版本的软件包DT
。已更新至DT_0.1.32
,现在工作正常。