2014-11-18 23 views
8

Viene visualizzato l'errore seguente quando si tenta di "lavorare in HTML" in RStudio.Errore "impossibile aprire la connessione" nell'esecuzione di "knit HTML" in RStudio

|................................         | 50% 
    ordinary text without R code 

    |.................................................................| 100% 


processing file: Preview-b0c112a265.Rmd 
label: unnamed-chunk-1 

Quitting from lines 16-26 (Preview-b0c112a265.Rmd) 
Error in file(file, "rt") : cannot open the connection 
Calls: <Anonymous> ... withVisible -> eval -> eval -> read.csv -> read.table -> file 
Execution halted 

Sto utilizzando RStudio su una macchina win8 a 64 bit.

+2

Rmd sta cercando di trovare il file che stai leggendo nella stessa directory in cui si trova .Rmd. Prova a specificare il percorso assoluto del file e controlla se è in esecuzione. Se sì, allora è necessario capire come impostare il percorso relativo al file. –

+0

Ya, ora sta lavorando per me :) –

+2

@PraveenKishor Se la risposta di Roman sotto è stata utile per te, ti dispiacerebbe [accettare] (http://stackoverflow.com/help/accepted-answer) vero? Questo potrebbe segnalare agli utenti futuri che il problema è stato risolto. –

risposta

12

Quando si esegue "Knit HTML", il codice sta cercando di trovare il file che si sta leggendo nella stessa directory in cui .Rmd si trova perché knitr imposta la directory di lavoro su tale percorso. Per quanto vedo, hai due opzioni.

  • Provare a specificare il percorso assoluto del file (non molto robusto, ma utile in alcuni casi).
  • Calcolare il percorso relativo al file. Se hai il tuo file .Rmd in / e i dati in /data, il percorso relativo dovrebbe essere, ad esempio, read.table("./data/myfile.csv"...). . significa "qui" (dovunque sia lo getwd()), due punti salgono la struttura della directory mentre specifica che le directory scalano la struttura verso il basso.
3

A volte è fastidioso per il percorso di esecuzione del file Rmd, soprattutto quando il file rmd non è archiviato nella cartella principale di un progetto. I normale archivio rmd nella cartella Report per evitare tutti i file temporanei nella root del progetto (ad esempio Report/myreport.Rmd).

Ad esempio, c'è un file myfile.csv nella cartella Risorse. Nel file RMD, ho bisogno di usare due punti per specificare il percorso del file:

read.csv('../Resources/myfile.csv') 

Ma il percorso del file non è corretto se voglio mettere alla prova il mio codice nella console di un progetto Rstudio come directory di lavoro normale è la cartella principale del progetto. Così ho bisogno di rimuovere due punti dal percorso del file:

read.csv('Resources/myfile.csv') 

Ho scritto una semplice funzione per risolvere questo problema per me (https://github.com/byzheng/rproject). La funzione project_filepath genererà un nuovo percorso che è relativo alla cartella principale di un progetto. Quindi la directory di lavoro potrebbe essere una sottocartella di un progetto. Il codice seguente funzionerà per file Rmd e console.

library(rproject) 
read.csv(project_filepath('Resources/myfile.csv')) 
0

È necessario impostare percorsi assoluti o relativi alla cartella del progetto come menzionano altri autori. Puoi anche setwd (percorso).

Ma questo non è abbastanza per me. Per qualche ragione, trovo che ho bisogno di caricare tutti i miei dati sul primissimo blocco di comandi R nel file .Rmd, altrimenti ottengo lo stesso errore di te.

In altre parole:

```{r} 
setwd("/tmp/report") 
# This load works 
data1 <- read.csv("your_file.csv", sep = "\t") 
```` 

some markdown text here ... 

```{r} 
# This load does not work, even if I do a setwd just before: 
data1 <- read.csv("your_file.csv", sep = "\t") 
```` 
0

Per me, era semplicemente un caso di non salvare il mio file .RMD ancora ... Come sottolineato in precedenza, il codice sta cercando di trovare il file nella stessa directory dove si trova .Rmd, e .Rmd non esiste, potresti ottenere questo errore.

Problemi correlati