Получить полный путь с учетом имени папки с помощью RStudio

#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"
  

Что касается цикла, вы, безусловно, можете это сделать, но то, как это будет выглядеть, зависит от конфигурации вашей системы.