2014-12-14 9 views
19

Ich bin neu in R, und nachdem ich diesen Fehler ausführlich untersucht habe, bin ich immer noch nicht in der Lage, eine Lösung dafür zu finden. Hier ist der Code. Ich habe mein Arbeitsverzeichnis überprüft und sichergestellt, dass sich die Dateien im richtigen Verzeichnis befinden. Bin dankbar. DankFehler in der Datei (Datei, "rt"): kann die Verbindung nicht öffnen

pollutantmean <- function(directory, pollutant = "nitrate", id= 1:332)    
{     if(grep("specdata",directory) ==1) 
      { 
        directory <- ("./specdata") 
      } 
      mean_polldata <- c() 
      specdatafiles <- as.character(list.files(directory)) 
      specdatapaths <- paste(directory, specdatafiles, sep="") 
          for(i in id) 
        { 
        curr_file <- read.csv(specdatapaths[i], header=T, sep=",") 
        head(curr_file) 
        pollutant 
        remove_na <- curr_file[!is.na(curr_file[, pollutant]), pollutant] 
        mean_polldata <- c(mean_polldata, remove_na) 
        } 
      { 
        mean_results <- mean(mean_polldata) 
        return(round(mean_results, 3)) 
      } 
} 

Der Fehler, den ich habe, ist unten bekommen:

Error in file(file, "rt") : cannot open the connection 

file(file, "rt") 

read.table(file = file, header = header, sep = sep, quote = quote, 
    dec = dec, fill = fill, comment.char = comment.char, ...) 

read.csv(specdatapaths[i], header = T, sep = ",") 

pollutantmean3("specdata", "sulfate", 1:10) 

In addition: Warning message: 
In file(file, "rt") : 
    cannot open file './specdata001.csv': No such file or directory 
+2

Es sieht so aus als hätten Sie ein Verzeichnis 'specdata' mit den Dateien' 001.csv', usw. Der richtige Pfad ist './Specdata/001.csv', * not *'./ specdata001.csv'. Versuchen Sie, 'sep =" "' in 'sep ="/"' in der Zeile 'specdatapaths' zu ändern. – jlhoward

+1

Oder versuchen Sie Degugging 101 Taktiken wie Drucken der Werte, die der Funktion gegeben werden, die den Fehler wirft. –

+0

Vielen Dank für Ihre Antworten. Ich konnte den offenen Verbindungsfehler beheben, aber jetzt bekomme ich einen Fehler "nicht identifizierte Spalten ausgewählt". Irgendwelche Vorschläge? Danke pollutantmean ("specdata", "sulfat", 1:10) Fehler in '[.data.frame' (curr_file,, pollutant): undefinierte Spalten ausgewählt 6 stop (" undefined columns selected ") 5' [ .data.frame' (curr_file,, schadstoff) 4 curr_file [, schadstoff] 3 '[.data.frame' (curr_file,! is.na (curr_file [, schadstoff]), schadstoff) 2 curr_file [! is .na (curr_file [, Schadstoff]), Schadstoff] 1 pollutantmean ("specdata", "Sulfat", 1:10) – ldeassis

Antwort

8

Sie müssen directory <- ("./specdata")-directory <- ("./specdata/")

relativ zum aktuellen Arbeitsverzeichnis ändern, die Sie für die Datei 001 suchen. csv, das sich in Ihrem specdata-Verzeichnis befindet.

Diese Frage ist nahezu ohne Kontext nicht zu beantworten, da Sie uns hier die Struktur Ihres Arbeitsverzeichnisses nicht zur Verfügung gestellt haben. Zum Glück für Sie, ich habe bereits R Programmierung auf Coursera genommen, so habe ich bereits diese Hausaufgaben Frage.

+0

Die allgemeine Lösung wäre, setwd ("/ absolute/Pfad/von/Verzeichnis/mit/erforderlich/Dateien /") am Anfang hinzuzufügen. – kvaibhav

+0

Ich änderte ständig das Arbeitsverzeichnis und der Ordner meiner Arbeitsdateien befand sich in diesem Verzeichnis. Still Rstudio konnte nicht in den Ordner der Dateien gehen. Also ja, musste die ganze Menge nach Benutzer/Home-Ordner eingeben. (Dies ist jedoch in Mac). – bonCodigo

0

Wenn Sie unter Windows arbeiten, versuchen Sie R oder R Studio als Administrator auszuführen, um Dateisystembeschränkungen von Windows OS zu vermeiden.

1

Verwenden Sie setwd(), um in das entsprechende Verzeichnis zu wechseln. Verwenden Sie nur Dateinamen beliebige Datei im Arbeitsverzeichnis zuzugreifen. Navigieren einen Ordner oberhalb von "../<filename>" verwenden.

7

Stellen Sie Ihr Arbeitsverzeichnis eine Ebene/Ordner höher. Zum Beispiel wird, wenn es bereits gesetzt, wie:

setwd("C:/Users/Z/Desktop/Files/RStudio/Coursera/specdata") 

eine Ebene nach oben und legen Sie es als:

setwd("C:/Users/Z/Desktop/Files/RStudio/Coursera") 

Mit anderen Worten, nicht „specdata“ Ordner als Arbeitsverzeichnis machen.

4

Ich verbrachte viel Zeit versuchen zu verstehen, was zu ...

auf meinem Code falsch war und es scheint einfach zu sein, wenn Sie Windows verwenden.

Wenn Sie Ihre Datei "blabla.txt" nennen dann nennen sie es "blabla.txt.txt" ... Das ist das gleiche mit .CSV-Dateien, so dass Windows eine Datei mit dem Namen "001.csv.csv" erstellen Sie nannte es „001.csv“

Also, wenn Sie Ihre CSV-Datei erstellen, ist es einfach umbenennen „001“ und es in R öffnen read.table("/absolute/path/of/directory/with/required/001.csv")

mit es funktioniert für mich.

0

bekam ich diese gleiche Fehlermeldung und fixiert es auf einfachste Art und Weise ich konnte. Ich habe meine CSV-Datei in einem Dateiordner auf meinem Desktop, geöffnet Desktop in das Fenster neben auf RStudio zu trösten, und dann meine Datei geöffnet und überprüft das Feld neben meiner CSV-Datei, dann habe ich das „mehr“ Pull-Down-Menü am oberen Rand dieses Fensters, um dies als mein Arbeitsverzeichnis zu setzen ... wahrscheinlich die einfachste Sache für SUPER Anfänger wie mich :)

0

Schließen Sie Ihr R Studio und führen Sie es erneut als Administrator. Das hat die Magie für mich bewirkt. Hoffe, es funktioniert für dich und jeden, der das auch durchmacht.

Verwandte Themen