Получение R-файлов, размещенных в R-проекте, и поддержание относительных путей - PullRequest
0 голосов
/ 27 марта 2019

Хорошо, мне нравится использовать R-проекты в Rstudio для сценариев и данных, с которыми я работаю. Однако предположим, что я хочу поместить эти сценарии в другой каталог ... R не обнаруживает файл .Rproj, если сценарий не вызывается из каталога, в котором он находится. Есть ли способ получить сценарий R, являющийся частью проекта R, из другого каталога?

Это актуально, так как у меня есть система, в которой я выполняю анализ и делаю фигуры в одном каталоге, но затем создаю документы LaTeX, которые используют эти фигуры в другом каталоге. Мне нравится иметь возможность получать сценарии R, которые делают рисунки, и сохранять их в каталоге, где я пишу в LaTeX.

Вот MRE:

С R-проектом, уже созданным в каталоге (сделано через Rstudio) ... давайте назовем его ~ / test.

Создать некоторые данные:

a <- 1:10
dat <- data.frame(a = a, b = a + rnorm(length(a), 10, 2))
save(dat, file = "test.RData")

Поместите следующий скрипт в ~ / test. Давайте назовем это test.R.

load("test.RData")

pdf(file = "plot.pdf")
plot(b ~ a, data = dat)
dev.off()

Отлично работает, верно? Но если мы попробуем следующее из любого другого каталога, R не сможет этого понять.

cd ~
Rscript ~/test/test.R

Какие-нибудь продуманные решения? Я полагаю, что в сценарии, из которого я получаю исходный сценарий, достаточно просто набрать setwd(), но этот вид не имеет смысла использовать R-проекты.

1 Ответ

0 голосов
/ 27 марта 2019

Вы можете использовать setwd("~/test/") в начале скрипта и при необходимости изменить его позже.

...