Ошибка в файле (file, "rt"): не удается открыть соединение

Я новичок в R, и после тщательного изучения этой ошибки я все еще не могу найти решение для нее. Вот код Я проверил мой рабочий каталог и убедился, что файлы находятся в правильном каталоге. Ценить это. Спасибо

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))
            }
} 

Я получаю ошибку ниже:

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

11 ответов

Вам нужно изменить directory <- ("./specdata") в directory <- ("./specdata/")

Относительно вашего текущего рабочего каталога, вы ищете файл 001.csv, который находится в вашем каталоге specdata.

На этот вопрос почти невозможно ответить без какого-либо контекста, так как вы не предоставили нам структуру вашего рабочего каталога здесь. К счастью для вас, я уже изучал R-программирование на Coursera, поэтому я уже сделал этот домашний вопрос.

Я предполагаю, что причина этой ошибки в том, что RStudio потерял путь к вашему рабочему каталогу.

(1) Перейти на сессию...

(2) Установить рабочий каталог...

(3) Выберите каталог...

-> Тогда вы можете увидеть всплывающее окно.

-> Выберите папку, в которой вы храните свои данные.

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

Установите ваш рабочий каталог на один уровень выше. Например, если он уже установлен как:

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

подняться на один уровень назад и установить его как:

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

Другими словами, не делайте папку specdata своей рабочей директорией.

Я просто потратил много времени, пытаясь понять, что не так в моем коде тоже...

И это кажется простым, если вы используете Windows.

Когда вы называете свой файл "blabla.txt", тогда Windows называет его "blabla.txt.txt"... То же самое и с файлами.CSV, поэтому Windows создает файл с именем "001.csv.csv", если вы назвали его "001"..csv"

Итак, когда вы создаете файл.csv, просто переименуйте его в "001" и откройте его в R, используя read.table("/absolute/path/of/directory/with/required/001.csv")

Меня устраивает.

Закройте свою R studio и запустите ее снова как администратор. Это сделало магию для меня. Надеюсь, что это работает для вас и всех, кто проходит через это тоже.

Лучшей проверкой, которую можно выполнить, если вы получили такую ​​ошибку при доступе к файлу, является использование file.exists("file_path/file_name") функция. Эта функция вернет TRUE если файл существует и доступен, иначе False,

Получил эту ошибку и обнаружил, что RStudio на моем компьютере с Windows пытается использовать \ как escape-символ, поэтому пришлось заменить его на \\ чтобы справиться с этим.

Пытаться file.exists функция с вашим путем, например:

file.exists("D:\\R\\path_to_file.csv")

Если вы работаете в Windows, попробуйте запустить R или R Studio от имени администратора, чтобы избежать ограничений файловой системы ОС Windows.

Ошибка в файле (файл, "rt"):

Я только что столкнулся с той же ошибкой и решил, удалив интервал в адресе с помощью paste0 вместо paste

filepath=paste0(directory,"/",filename[1],sep="")

Использование setwd() перейти в соответствующий каталог. Используйте только имя файла для доступа к любому файлу в рабочем каталоге. Перейдите в папку выше с помощью "../<filename>",

Эта ошибка также возникает, когда вы пытаетесь использовать результат getwd() непосредственно в пути. Проблема в отсутствии символа "/" в конце. Попробуйте следующий код:

projectFolder <- paste(getwd(), "/", sep = '')

Paste() должен объединить косую черту в конце.

Я получал ту же ошибку при попытке импортировать 10000 файлов. Я попытался открыть один файл в Excel, и Excel выдала сообщение об ошибке: "Путь к файлу слишком длинный".

Файл был похоронен в 6 вложенных папках, что само по себе является проблемой. Перемещение всех файлов в папку на рабочем столе решило проблему без изменения кода.

Я получил то же самое сообщение об ошибке и исправил его как можно проще. Я поместил свой файл.csv в папку на своем рабочем столе, открыл рабочий стол в окне рядом с консолью на RStudio, а затем открыл там свой файл и установил флажок рядом с моим файлом.csv, после чего я использовал "more" раскрывающееся меню в верхней части этого окна, чтобы установить его в качестве моего рабочего каталога... вероятно, самая простая вещь для начинающих, таких как я, СУПЕР:)

У меня была та же проблема. Я удалил расширение из имени файла. Например, мое имя файла было сохранено как xyz. CSV. я сохранил его как XYZ.

Я нашел решение, основанное на нескольких ответах, появившихся в ветке. (окна 10)

setwd("D:/path to folder where the files are")
directory <- getwd()
myfile<- "a_file_in_the_folder.txt"
filepath=paste0(directory,"/",myfile[1],sep="")
table <- read.table(table, sep = "\t", header=T, row.names = 1, dec=",")

Я получил свой код R-кода от друга и не смог запустить команду read.csv, но если я скопирую эту же команду (read.csv) в новый файл сценария R, она запустится нормально.

Приведенная ниже команда не выполнялась в файле кода R, предоставленном моим другом, рабочий каталог, имя файла и т. Д. Были правильными, потому что если я создал новый файл сценария R и запустил команду ниже, это сработало.

           df <- read.csv("file.csv",header=TRUE,stringsAsFactors = FALSE,strip.white = 
           TRUE,sep = ',')

проблема / разрешение: я щелкнул правой кнопкой мыши файл кода R, разблокировал файл и нажал кнопку "Сохранить", и проблема была решена. Если ваш файл R-кода находится в папке "Загрузки" в Windows, перейдите в другую папку.

Ошибка в файле (файл, "rt")

Создал файл.r и сохранил его на рабочем столе вместе с файлом sample_10000.csv.

Однажды пытаясь прочитать это

heisenberg <- read.csv(file="sample_100000.csv")

получал ту же ошибку, что и вы

heisenberg<- read.csv (file = "sample_10000") Ошибка в файле (file, "rt"): не удается открыть соединение. Дополнительно: Предупреждение: в файле (file, "rt"): невозможно открыть файл 'sample_10000': Данный файл или каталог отсутствует


Я знал как минимум два способа исправить это: один - с использованием абсолютного пути, а другой - с изменением рабочего каталога.

Абсолютный путь

Исправил добавление абсолютного пути к файлу, точнее

heisenberg <- read.csv(file="C:/Users/tiago/Desktop/sample_100000.csv")

Рабочий каталог

Эта ошибка возникает из-за того, что в RStudio определен конкретный рабочий каталог, который не обязательно является местом, где находится файл.r.

Итак, чтобы исправить этот подход, я перешел в Сеанс> Установить рабочий каталог> Выбрать каталог (CTRL + Shift + H) и выбрал Рабочий стол, где находился файл.csv. Таким образом, также сработала следующая команда

heisenberg <- read.csv(file="sample_100000.csv")
Другие вопросы по тегам