Почему я получаю эту ошибку записи данных в файл

У меня есть этот код

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.

  1. Когда вы используете Windows, вы все равно должны использовать косую черту для путей. В R обратные слэши зарезервированы для экранирования значений. Итак, путь в R выглядит так:C:/path/to/my/directory
  2. В более новых версиях Windows C:\ защищен от записи учетными записями пользователей. Если вы хотите написать в C:\, вы должны быть администратором. Это можно сделать, щелкнув правой кнопкой мыши значок R в Windows и выбрав "Запуск от имени администратора". Это также следует делать при установке пакетов. У вас могут не быть прав на установку пакетов в определенных версиях Windows, если вы не запускаете их как администратор.
  3. Если вы не хотите запускать 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
    )
  )
Другие вопросы по тегам