Я хотел бы программно указать местоположение моего экспорта при использовании write.dta
. Мой рабочий каталог установлен в родительскую папку, а мой скрипт находится в дочерней папке с именем «Script». Я хочу, чтобы экспорт находился в дочерней папке с именем «Данные».
setwd("~/Dropbox/Files")
file_output <- "survey"
path_out <- "./Data"
write_dta(df, paste0(file_output,".dta"), path = path_out, version = 12)
Однако я продолжаю получать сообщение об ошибке, когда R пытается писать. Он говорит, что пытается записать в папку «Script» (где находится мой файл сценария), а не в нужную папку «Data».
Error: Failed to open '/Users/VancityPlanner/Dropbox/Files/Scripts' for writing
Если я укажу полный путь, я все равно получу одно и то же сообщение об ошибке, будь то дочерняя папка или сама родительская папка (рабочий каталог), поэтому я не думаю, что права на запись являются проблемой.
Если я попытаюсь не указывать путь к файлу, у меня не будет сообщений об ошибках, но он сохранит его в моем рабочем каталоге, а не там, где я этого хочу.
write_dta(df, paste0(file_output,".dta"), version = 12)
Похоже, проблема с разрешением на этом пути. Любой пользователь, запускающий R, должен иметь права на запись.
@Майк, я обновил свой пост. Указание полного пути (независимо от того, является ли это дочерней папкой или родительской папкой/рабочим каталогом) завершается с тем же сообщением об ошибке. Однако, если я вообще не указываю путь, он сохраняется в моем рабочем каталоге без проблем, но это не то место, где я хочу сохранить.
какую ОС вы используете? можешь показать полный вд?
@Mike macOS 10.15.7 Полный wd — «/Users/VancityPlanner/Dropbox/Files/». У меня нет проблем при использовании write.csv
о, я думаю, вам просто нужно объединить ваши path_out и file_output в одну строку и передать ее аргументу file=
@Mike Я пытался использовать write_dta(df, paste0(path_out, file_output,".dta"), version = 12)
, где я комбинирую path_out и file_output, но он просто записывает в рабочий каталог и включает path_out в имя файла. Как я должен форматировать код по-другому?
Ниже я показываю, куда указывает мой рабочий каталог, а затем я изменяю путь, по которому я хочу сохранить документ, в операторе пути. Обратите внимание, что к нему добавлен путь к файлу G:/
и имя набора данных. У меня есть ПК, но нет причин, по которым это не должно работать на Mac.
library(haven)
getwd()
#"C:/Users/myname/Documents"
write_dta(data = mtcars, path = "G:/mtcars.dta", version = 12)
что произойдет, если вы укажете полный путь в аргументе
path=
?