Почему я получаю эту ошибку записи данных в файл
У меня есть этот код
myvector <- c(3.45235, 1.32525, ... , 2.41351) # some numbers
write(myvector, "C:/mypath/myfile.txt") # I use "/" instead of "\"
и я получаю следующую ошибку:
Ошибка в файле (file, ifelse (append, "a", "w")): невозможно открыть соединение. Дополнительно: предупреждающее сообщение: В файле (file, ifelse (append, "a", "w")): невозможно открыть файл "C:/mypath/myfile.txt": нет такого файла или каталога
Я прочитал этот учебник, но я не могу понять, что не так с моим кодом. Любая идея?
редактировать:
Как указал @dickoa, мне нужен существующий путь для записи файла, поэтому я попытался упростить его следующим образом:
file.exists("C:/")
write(myvector, "C:/myfile.txt")
Удивительно:P путь "C:/" существует (результат - ИСТИНА), но я получаю похожую ошибку:
Ошибка в файле (file, ifelse (append, "a", "w")): невозможно открыть соединение. Дополнительно: предупреждающее сообщение: В файле (file, ifelse (append, "a", "w")): невозможно открыть файл "C:/mypath/myfile.txt": в доступе отказано
6 ответов
Я знаю, что @dickoa ответил на вопрос в комментариях, но для того, чтобы дать хотя бы один ответ здесь, я хотел пройти через несколько простых ошибок с R на Windows.
- Когда вы используете Windows, вы все равно должны использовать косую черту для путей. В R обратные слэши зарезервированы для экранирования значений. Итак, путь в R выглядит так:
C:/path/to/my/directory
- В более новых версиях Windows C:\ защищен от записи учетными записями пользователей. Если вы хотите написать в C:\, вы должны быть администратором. Это можно сделать, щелкнув правой кнопкой мыши значок R в Windows и выбрав "Запуск от имени администратора". Это также следует делать при установке пакетов. У вас могут не быть прав на установку пакетов в определенных версиях Windows, если вы не запускаете их как администратор.
- Если вы не хотите запускать R от имени администратора и хотите писать в файлы, по умолчанию у вас будут права на
C:/Users/username/
каталог.
Все благодарности @dickoa снова за его ответ в первую очередь.
Удачи!
Просто добавив к ответам здесь.
Причина, по которой я столкнулся с этой ошибкой, заключалась в том, что путь, который я пытался сохранить, превышал 256 символов, и, следовательно, ошибка.
Проблема была решена, как только я уменьшил размер пути.
Это происходит, когда вы открываете myfile.txt и запускаете код. Попробуйте закрыть myfile.txt на вашем компьютере и выполните команду. Это решает вашу проблему.
Иногда проблема заключается в именовании файла. Например, я сталкивался с этой проблемой, когда в имени файла присутствовал знак "\", поскольку существовал динамический список с именами. Вы можете пройти мимо этого, используя что-то вроде: sometext = gsub("/"," ", sometext).
Я просто поделился этим ответом с небольшим объяснением, но суть его такова:
Попробуйте открыть файл в Excel, чтобы проверить, не заблокирован ли он другим пользователем. Я получал те же сообщения об ошибках и смог выяснить, что у коллеги был файл, открытый на их компьютере, который лишил меня возможности редактировать его.
Просто еще одна возможность. Я столкнулся с этой проблемой при запуске следующего кода. Поскольку я успешно запустил этот код перед запуском RStudio, на этот раз я успешно запустился после перезапуска RStudio. Так что иногда перезагрузка решает проблему, хотя я так и не понял, что произошло сзади.
DT::datatable(
dt.cmbn,
extensions = c('ColReorder','FixedColumns'), rownames = FALSE,
options = list(
colReorder = TRUE,
#dom = 'Bfrtip',
#buttons = I('colvis'),
scrollX = TRUE,
fixedColumns = TRUE
)
)