#r #directory #path #rstudio
#r #каталог #путь #rstudio
Вопрос:
Я работаю над автоматизацией проекта, но у меня возникло препятствие в этом сценарии.
У нас есть несколько проектов с уникальным именем проекта. Что мне нужно сделать, это получить полный путь с учетом имени папки.
Если вышеупомянутый проект находится в D:Documents тогда я должен быть в состоянии получить значение D:Documents20911 ABC ОПРЕДЕЛЕНИЕ
Хотя каждый проект абсолютно одинаков, он будет содержать одни и те же файлы и все, у них более высокие категории. Некоторые из них будут находиться в папке Project_A, Project_B, Project_C и т.д.
Или есть какой-нибудь способ перебрать все файлы, найти указанную папку проекта и после идентификации я получу этот путь и сохраню его в переменной?
Я не могу предоставить образец, потому что я пытался искать источники в Интернете, но не могу их найти.
Комментарии:
1. Не могли бы вы просто использовать
getwd()
?2. @Phil к сожалению, нет. Мой RScript сохраняется в рабочей папке отдельно от всех папок проекта. RScript работает одинаково для всех файлов проекта, только у них разные имена папок (в зависимости от проекта), поэтому я использовал папку в качестве пользовательского ввода.
3. Я понимаю. Не могли бы вы иметь все каталоги этих проектов в каталоге, а затем использовать функцию Project в RStudio, чтобы полагаться на его путь? например, все в «D://This_project/Project_A » а затем создайте объект проекта в «D://This_project «. В качестве альтернативы,
here
пакет также может быть полезен.
Ответ №1:
Вы могли бы использовать normalizePath()
, если я понимаю ваш вопрос.
> setwd("~/Dropbox/9590/Lecture1")
> list.files()
[1] "Lecture1.html" "Lecture1.Rmd" "Lecture1.Rproj"
[4] "libs" "syllabus_2020.aux" "syllabus_2020.fdb_latexmk"
[7] "syllabus_2020.fls" "syllabus_2020.log" "syllabus_2020.pdf"
[10] "syllabus_2020.synctex.gz" "syllabus_2020.tex" "xaringan-themer.css"
> normalizePath("Lecture1.Rproj")
[1] "/Users/david/Dropbox (DaveArmstrong)/9590/Lecture1/Lecture1.Rproj"
Что касается цикла, вы, безусловно, можете это сделать, но то, как это будет выглядеть, зависит от конфигурации вашей системы.