问题
Following the last example on RMarkdown's Parametrized Reports page, I am trying to use the Shiny
interface to select my input file with the following code inside the YAML
header:
params:
data:
input: file
label: 'Input dataset:'
value: myData.csv
The Shiny
interface shows up and I get to browse for a file, but when I try to access it further down in the R
code via read.csv(file=params$data, header=TRUE)
, I get the following message:
Error in file(file, "rt") : cannot open the connection
How can I get to read my file?
Note: I have seen a thread where users pass the file path in a function at the time of rendering the RMarkdown
document, but this is not what I am trying to do. I would just like to be able to select it from the Shiny
interface.
EDIT
After playing a bit more, I think the issue is that the temporary file created when reading the file I select via the shiny
interface and passed as params$data doesn't exist anymore when I try to access it.
Indeed, file.exists(params$data)
returns FALSE
.
So I guess my question now becomes: How do I get to read this temporary file before it is erased ?
回答1:
It doesn't look like this can be reproduced anymore.
Just for the sake of explaining how this is done:
- Create a new RMarkdown document
Add the following yaml block to the top:
params: data: input: file label: 'Input dataset:' value: myData.csv
Add the following R chunk to the document:
```{r data} cat(params$data) c <- read.csv(params$data) print(c) ```
Select under the "Knit" dropdown the "Knit with Parameters" option
- Attach any valid CSV and click "Knit" in the Shiny parameters panel
来源:https://stackoverflow.com/questions/34436515/how-do-i-access-the-data-from-a-file-passed-as-parameters-in-a-rmarkdown-documen