从另一个函数访问从read.csv加载的数据帧 - R Shiny

时间:2016-06-30 01:18:16

标签: r shiny shiny-server

我无法将数据从我从csv文件读取的矩阵传递到另一个函数。

我尝试了解决方案here,创建辅助数据函数并使用data()$loadedMat调用矩阵。

我正在

错误:'closure'类型的对象不是可子集化的

我有:

 shinyServer(function(input, output, session) {

   data <- reactive(function (){

       inFile <- input$file1

       if (is.null(inFile))
         return(NULL)

       loadedFile <- read.csv(inFile$datapath, 
                              header=FALSE, 
                              sep=input$sep, 
                              quote=input$quote)

       loadedDf <- loadedFile[2:nrow(loadedFile), ]

       #figure out how to access loadedMat from another function
       loadedMat <- as.matrix(loadedDf)


     })

     output$result <- renderText({

          input$goButton 
          x <- someFunction(data()$loadedMat)
     })
 })

1 个答案:

答案 0 :(得分:3)

反应函数data()不包含&#34;矩阵loadedMat loadedMat

所以你可以像x <- someFunction(data())

那样访问它

您链接的答案突出显示了如何从data.frame中获取列。

要访问data.frame的列,您需要data$column。这同样适用于被动数据帧:data()$column

重申@ alistaire的评论:你应该为你的数据选择一个不同于data的名称(因为data()已经是R中的一个函数)