Невозможно экспортировать данные в файл в R (write.csv)

Я пытаюсь экспортировать данные в R в файл csv, и как бы просто я ни пытался это сделать, я всегда получаю одно и то же сообщение об ошибке. Пример:

Я создаю простой вектор данных для экспорта

 x <- c(1,3,4,3,5,7,5,8,2,5,7)

Я пытаюсь экспортировать с помощью:

write.csv(x,file='whatever.csv')

И получаю ошибку:

error in file(file ifelse (append a w )) cannot open the connection
In addition: Warning message: In file(file, ifelse(append, "a", "w")) :
cannot open  file 'whatever.csv': Permission denied

Как я могу это решить?


person Golan_trevize    schedule 22.07.2013    source источник
comment
Я не получаю ошибку, когда запускаю ваш код. Похоже на возможную проблему с разрешениями.   -  person zkurtz    schedule 22.07.2013
comment
Распространенной причиной такого рода ошибок, особенно в Windows, может быть открытие файла в другой программе, например Excel, при попытке записи в него.   -  person Marius    schedule 22.07.2013
comment
Использование: write.csv(x,file='./whatever.csv')   -  person    schedule 03.07.2015


Ответы (10)


Первая часть — проверить рабочий каталог и убедиться, что у вас есть права на запись в этот каталог. Вы можете проверить это с помощью getwd(). Я могу воспроизвести вашу ошибку, попытавшись записать в каталог, доступный только для чтения.

Чтобы установить рабочий каталог на что-то другое с доступом для чтения, вы можете ввести setwd("H:/foo"). Если у вас есть доступ для записи, write.csv(x,file='whatever.csv') должен работать.

person Soid    schedule 22.07.2013
comment
Да, я получил эту ошибку, потому что забыл создать каталог перед записью файла. - person Tania; 18.12.2020

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

write.csv(data, file="C:/project/file.csv")

person Zerihun Bekele    schedule 14.03.2019

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

Шаги: найдите папку на своем ПК, щелкните правой кнопкой мыши и выберите свойства, найдите вкладку «Безопасность» и отредактируйте разрешение для всех, включив «Запись».

person Oluwanifemi Omotola    schedule 02.04.2018

Если вы не укажете имя файла (например, C:/temp.csv), а просто укажете путь к файлу, эта же ошибка появится как с write.csv, так и с write_csv.

person porkchop    schedule 10.01.2019

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

person cagatay    schedule 11.07.2020

Связано: я пытался сохранить csv по относительному пути, который я постепенно создавал в Windows, но в моем случае проблема была не в ошибке, а в недоразумении с моей стороны - в следующем коде:

library(dplyr)
library(hflights)

path_to_hflights_as_csv <- 
  file.path(path.expand("~/MyHomeSubDir"),
            "hflights.csv")

write.csv(hflights, path_to_hflights_as_csv)

path.expand("~/MyHomeSubDir") сопоставляется с "C:/Users/my.username/Documents/MyHomeSubDir" вместо "C:/Users/my.username/MyHomeSubDir".

В поисках неправильной конфигурации при установке R я обнаружил, что домашний каталог в различных версиях Windows действительно "C:/Users/my.username/Documents/" (а не "C:/Users/my.username"):

И когда вы передаете путь, включающий несуществующий подкаталог, к utils::csv.write, ошибка аналогична (только причина не открывать файл другая - cannot open file 'C:/Users/my.username/MyHomeSubDir/hflights.csv': No such file or directory).

person Franz Maikäfer    schedule 12.07.2020

Если вы экспортировали файл раньше (нет проблем), а теперь возникает ошибка, убедитесь, что файл не открыт. В моем случае, когда я попытался экспортировать второй раз, я получил ошибку, я понял, что первый файл был открыт. Вы можете изменить имя экспортируемого файла или закрыть тот, который открыт.

person Ysai Ronquillo    schedule 08.08.2020

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

Error in file(file, ifelse(append, "a", "w")) : 
  cannot open the connection

После поиска и не найдя ничего подходящего, я перезапустил R и получил то же сообщение, но также новую ошибку:

In addition: Warning message:
In file(file, ifelse(append, "a", "w")) :
  cannot open file 'censoredpath.file.csv': Permission denied

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

person cparmstrong    schedule 07.09.2017

Если у вас уже есть файл с таким именем в вашем рабочем каталоге, вы получите эту ошибку.

person Reza Rahimi    schedule 15.05.2017
comment
Я записал один и тот же файл несколько раз в один и тот же каталог. - person jogo; 16.05.2017

Пожалуйста, проверьте свой код на наличие имени переменной, логического T или F (ИСТИНА или ЛОЖЬ). Если у вас есть, вы не можете сокращать логические значения как T или F.

person Humann    schedule 19.10.2016
comment
Как это связано с примером в вопросе? - person jogo; 16.05.2017