2015-02-19 4 views
3

Я запускаю rStudio v3.1.2 в Windows 7. Этот ноутбук представляет собой 64-разрядную машину.Ошибка в файле (файл, «rt»): невозможно открыть соединение - невозможно открыть файл «specdata» access denied

Я беру курс программирования JHU R, предлагаемый Курсерой, и я застрял на ошибке, которую я получаю в первой части проблемы. У меня есть некоторые функции обработки ошибок, которые я придерживаюсь из этого примера, поэтому я просто пытаюсь показать, что мне абсолютно необходимо. Единственная причина, по которой я включаю сообщения, - это продемонстрировать, что все условия должны быть выполнены для продолжения.

pollutantmean <- function(directory, pollutant, id=1:332) { 

    setwd("C:\\Users\\WR-eSUB\\specdata") 

    if(!isValidDirectory(directory)) { 
     stop("Invalid input given. Please specify valid directory to operate on.") 
    } 
    if(!isValidPollutant(pollutant)) { 
     stop("Invalid input given. Please specify valid pollutant (nitrate/sulfate).") 
    } 
    if(!isValidIdRange(id)) { 
     stop("Invalid input given. Please specify valid id range (1:332).") 
    } 
    sortedData = numeric() 
    for (i in id) { 
     thisFileName = paste(formatC(i, width = 3, flag = "0"), ".csv", sep="") 
     thisFileRead = read.csv(directory, thisFileName) 
     sortedData = c(sortedData, thisFileRead[[pollutant]]) 
    } 
    mean(sortedData, na.rm = TRUE) 
} 

Обратите внимание, что внутри WR-eSUB папка под названием specdata и внутри этой папки есть каталог, который содержит файлы .csv также называемых specdata. Я мог бы изменить это, но до сих пор я работал с ним, и я не сталкивался с какими-либо проблемами.

Когда я называю pollutantmean("specdata", "nitrate", 1:2) я получаю следующее сообщение об ошибке:

Error in file(file, "rt") : cannot open the connection 
In addition: Warning message: In file(file, "rt") : cannot open file 'specdata': Permission denied 

Теперь в моих многочисленных попыток, чтобы попытаться закончить эту часть задания я был в состоянии извлечь данные другими способами, используя вещи но, поскольку я продолжал застревать, я выбросил все и хотел попробовать что-то в этом роде.

Я искал в Интернете, чтобы попытаться найти это решение. Несмотря на то, что есть несколько ответных запросов, ни одна из них, похоже, не настолько запутанна, как эта. WR-eSUB является административной папкой, но предыдущие попытки открыть файлы внутри нее ранее не производили эту ошибку.

+1

Таким образом, это 'C:/Users/WR-eSUB/specdata/specdata/*. Csv'? –

+1

Прошу прощения, если мой вопрос не ясен или мне кажется летаргическим. Чтобы быть абсолютно честным, я действительно сгорел, и если вы хотите, чтобы я голосовал, я по крайней мере так объясняю, почему я больше не буду этого делать. – ASwiftPeregrine

+0

Что такое вывод 'list.files (« C: \\ Users \\ WR-eSUB \\ specdata »)'? –

ответ

1

После хорошего сна мы увидели проблему. Я вообще не использовал каталог, поэтому мне нужно было добавить его.

thisFileName = paste(directory, "/", formatC(i, width = 3, flag = "0"), ".csv", sep="") 
1

Эта линия не получится:

read.csv(directory, thisFileName) 

потому что, как беглый взгляд в сторону ?read.csv сказал бы вам, что первый аргумент этой функции:

file: the name of the file which the data are to be read from. 
     Each row of the table appears as one line of the file. If it 
     does not contain an _absolute_ path, the file name is 
     _relative_ to the current working directory, ‘getwd()’. 
     Tilde-expansion is performed where supported. This can be a 
     compressed file (see ‘file’). 

и вы передаете его directory (как в specdata в соответствии с указанным вами вызовом).

Учитывая, что setwd() уже поставил вас в этом каталоге, будет не

read.csv(theFileName) 

работа?

+0

У меня на самом деле была такая строка, как раньше, как моя первая попытка, но потом я получил бы то же первое сообщение об ошибке, а второе изменилось бы на. Кроме того: Предупреждающее сообщение: В файле (файл, «rt») : невозможно открыть файл '001.csv': нет такого файла или каталога – ASwiftPeregrine

+0

Извините, что я должен был упомянуть, что я это сделал. Когда я не могу найти решение в справочных руководствах или после отладки, я начинаю пробную проверку грубой силы и ошибаюсь в режиме отладки. Я должен признать, что мой опыт работы с отладочным режимом доходит до java с eclipse, поэтому rStudio не является точно моей сильной стороной: / – ASwiftPeregrine