Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Rshiny应用程序中呈现和下载数据表_R_Shiny_Dt - Fatal编程技术网

在Rshiny应用程序中呈现和下载数据表

在Rshiny应用程序中呈现和下载数据表,r,shiny,dt,R,Shiny,Dt,我无法呈现数据表并允许用户使用闪亮的应用程序下载该数据表。这是我的MWE 用户界面: ui在ui中的input$SampleData\u rows\u all?您只写入了filtereddata()的行,这些行的行名与input$SampleData\u rows\u all的值相匹配。如果未在任何位置定义input$SampleData\u rows\u all,则将选择0行并仅获取列标题。不要在输入/输出名称中使用点,如output$out.Sample。点在Javascript中有一个含义

我无法呈现数据表并允许用户使用闪亮的应用程序下载该数据表。这是我的MWE

用户界面:


ui在
ui
中的
input$SampleData\u rows\u all
?您只写入了
filtereddata()
的行,这些行的行名与
input$SampleData\u rows\u all的值相匹配。如果未在任何位置定义
input$SampleData\u rows\u all
,则将选择0行并仅获取列标题。不要在输入/输出名称中使用点,如
output$out.Sample
。点在Javascript中有一个含义,shiny会将其解释为Javascript。@Divisan我想这是对OP的混淆。如果他/她将
output$out.Sample
替换为
output$SampleData
,然后,
DT
将自动定义
input$SampleData\u rows\u all
。您不需要带
DT
下载处理程序。改为使用
按钮
扩展名(这更简洁,提供更多选项):
DT::renderDataTable(DT::datatable(Filteredata(),extensions=“Buttons”,options=list(dom=“Bfrtip”,Buttons=c(“复制”、“csv”、“excel”、“pdf”、“打印”))
ui <- fluidPage(

# Application title
titlePanel("Tool v0.03"),

# Sidebar with a slider input for number of bins 
sidebarLayout(
sidebarPanel(
  fileInput("dataset", "Choose CSV File",
            multiple = TRUE,
            accept = c("text/csv",
                       "text/comma-separated-values,text/plain",
                       ".csv")),
  helpText(em("Note:Select all the inputs and click on button as given below to exectute the app")),
  checkboxInput("header", "Header", TRUE),
  radioButtons("sep", "Separator",
               choices = c(Comma = ",",
                           Semicolon = ";",
                           Tab = "\t"),
               selected = ","),
  selectInput("select", "Select columns to display", c('col1', 'col2'), multiple = TRUE),
  actionButton("update", "Update Data set", class = "btn-primary",style='padding:4px; font-size:120%')
),
mainPanel(

  tabsetPanel(type = "tabs",
              tabPanel(h2("Random Stratified Sample"), DT::dataTableOutput('out.Sample'), 
                       fluidRow(downloadButton('SampleDownload', "Download sample data"))) # in a tabitem)
)
)
)
)
server <- function(session, input, output) {

data <- reactive({
req(input$dataset)
Cleaning_Fun(read.csv(input$dataset$datapath, header = input$header,sep = 
input$sep))
})

filtereddata <- eventReactive({
input$update
data()
},  {
req(data())
if(is.null(input$select) || input$select == "")
  data() else 
    data()[, colnames(data()) %in% input$select]
})

observeEvent(data(), {
updateSelectInput(session, "select", choices=colnames(data()))
})

output$out.Sample <- 
DT::renderDataTable(DT::datatable((filtereddata())

))

output$SampleDownload <- downloadHandler(
filename = function() {
  paste('Sample_data-', Sys.Date(), '.csv', sep = '')
},
content = function(file){
  write.csv(filtereddata()[input[["SampleData_rows_all"]], ],file)
}
)

}