读取文件并将其保存到对象中。 Shiny R中的[无显示已加载数据]

时间:2014-08-22 18:57:13

标签: r shiny shiny-server

我知道这里有一些问题就是这样。

但我无法从他们那里找出问题的解决方案。

我希望通过闪亮将文件上传到R并将其分配给对象,例如对象名称“Object_name”。

我在ui.R中使用了fileInput并执行了此操作

fileInput('file1', h4('Choose Your Data File'),
                            accept=c('text/csv',
                                     'text/comma-separated-values,text/plain',
                                     '.OUT'))

现在我访问“file1”并尝试通过file1 $ datapath恢复上传的文件。 我实际上无法做到这一点。我收到了像......这样的控制台错误。

1. Error in terms.formula(formula, data = data) : 
  'data' argument is of the wrong type

在绘图平面的GUI中显示Error:'data' argument is of the wrong type

我在shinyserver server.R

中添加了这段代码
mydata <- reactive({
    inFile <- input$file1
    if (is.null(inFile)) return(NULL)
    object_name <- read.table(inFile$datapath, header = TRUE)
  })

是否允许直接从数据路径访问文件,就像我上面所做的那样。 为什么不将上传的数据加载到“a”中。

如果有人知道答案,请帮助我。

更新

我的数据集是header = False。 因此,一旦我上传数据,我就必须更改名称(我的数据集),然后进行进一步的计算。

考虑此代码

a <- reactive({
   inFile <- input$file1
   if (is.null(inFile)) return(NULL)
   read.table(inFile$datapath, header = TRUE)
 })

我仍然无法访问a()[i,我想要的数据]并将其用于进一步的计算。我不能像names(a) <- c(.......)那样在反应之外进行分配,因为如果我这样做会引发错误......

Error in names(a) <- c("Ei", "Mi", "hours", "Nphy", "Cphy", "CHLphy",  : 
  names() applied to a non-vector

我无法在反应中做到这一点因为我只能在数据“a”或“a()”准备就绪后指定名称。那我怎么能做到这一点。

1 个答案:

答案 0 :(得分:2)

server.r中,您需要执行read.csv(或与您的输入文件格式相对应的任何内容)才能获取数据。类似的东西:

MyData<-reactive({ read.csv(input$file1$datapath, ...) })

其中......是read.csv()所需的其他参数。然后,您可以将其称为MyData()

来访问您的数据

修改 如果要添加列名(不在原始.csv中),可以使用col.names中的read.csv()参数。