我知道这里有一些问题就是这样。
但我无法从他们那里找出问题的解决方案。
我希望通过闪亮将文件上传到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()”准备就绪后指定名称。那我怎么能做到这一点。
答案 0 :(得分:2)
在server.r
中,您需要执行read.csv
(或与您的输入文件格式相对应的任何内容)才能获取数据。类似的东西:
MyData<-reactive({ read.csv(input$file1$datapath, ...) })
其中......是read.csv()
所需的其他参数。然后,您可以将其称为MyData()
。
修改强>
如果要添加列名(不在原始.csv中),可以使用col.names
中的read.csv()
参数。