使用R Shiny显示上载的数据文件中的行数

时间:2016-11-08 18:28:35

标签: r shiny

我正在尝试显示上传数据文件中的行数。我得到的输出虽然是'data1'。有人可以协助获取数据文件中的行数吗?

ui.R

library(shiny)

ui = fluidPage(
sidebarPanel(
fileInput('file1', 'Choose file to upload',accept =   c('text/csv','text/comma-separated-values','text/tab-separated-values','text/plain','.csv','.tsv')),
checkboxInput('header', 'Header', TRUE),
radioButtons('sep', 'Separator',c(Comma=',',Semicolon=';',Tab='\t'),'Comma'),
radioButtons('quote', 'Quote',c(None='','Double Quote'='"','Single Quote'="'"),'Double Quote'),
actionButton("Load", "Load the File"),width = 3),

mainPanel(verbatimTextOutput("my_output_data"))
)

server.R

server = function(input, output) {

data1 <- reactive({
if(input$Load == 0){return()}
inFile <- input$file1
if (is.null(inFile)){return(NULL)}

isolate({ 
  input$Load
  my_data <- read.csv(inFile$datapath, header = input$header,sep = input$sep, quote = input$quote,stringsAsFactors =FALSE)
  my_data_size <- nrow(my_data)
})
my_data_size
})

output$my_output_data <- renderPrint({data1})

}

1 个答案:

答案 0 :(得分:2)

所以data1实际上是一个反应函数。所以在renderPrint({})中,改为:

output$my_output_data <- renderPrint({data1()})

使用括号,您正在运行该函数并获取输出。没有括号,你只是获得了函数对象本身的直觉,而不是它的输出。

希望这会有所帮助。我在样本数据集的基础上对此进行了测试,结果正常。