2016-03-26 10 views
0

Ich habe diesen Fehler ausgiebig recherchiert und alles versucht, was relevant erschien, kann nicht scheinen, meinen Kopf um dieses zu wickeln, während es ziemlich scheint einfach: esWas immer ich mache, bekomme ich immer -> Fehler in der Datei (Datei, "rt")

Location "pollutantmean.R"

> source('~/Desktop/R Projects/assigment1/pollutantmean.R') 

Das Skript 'pollutantmean.R' wie folgt aussieht

pollutantmean <- function(directory, pollutant, id = 1:332){ 
    filesList <- list.files(directory, full.names=TRUE)[id] 
    dat <- data.frame() 
    for (i in seq_along(id)) {  
     dat <- rbind(dat, read.csv(filesList[i])) 
    } 
    mean(dat[, pollutant], na.rm=TRUE) } 

Mein Arbeitsverzeichnis ist

> getwd() 
[1] "/Users/nickpoels/Desktop/R Projects/assigment1" 

Mein Arbeitsverzeichnis enthält

> dir() 
[1] "pollutantmean.R"   "rprog-data-specdata.zip" "specdata" 

"specdata" enthält alle CSV-Dateien

Nun, wenn ich meine Funktion aufrufen, ist das, was ich erhalte

> pollutantmean("specdata", "nitrate", 70:72) 

Error in file(file, "rt") : cannot open the connection 
In addition: Warning message:In file(file, "rt") : cannot open file 'NA': No such file or directory 
+0

Ich schlage vor, Sie fügen 'browser()' früh in Ihrer Funktion hinzu und verfolgen, was vor sich geht. Ich glaube nicht, dass wir ohne mehr Einsicht viel tun können. – r2evans

+1

eine Frage - welches Betriebssystem verwenden Sie? Der Pfad zu Ihrem Arbeitsverzeichnis sieht wie ein Windows-Pfad aus. Aber das "~" in Ihrem Pfad zu dem Dateinamen funktioniert nur in Linux. – dww

+0

oder auf einem Mac (der auch unixartig ist) –

Antwort

1

Sie brauchen wahrscheinlich nur ein full.names=TRUE Argument in Ihrem list.files in pollutantmean(). Damit wird der gesamte Pfad von list.files abgerufen und es sollte funktionieren, ob Sie einen relativen oder absoluten Pfad angeben.

Verwandte Themen