2014-09-30 4 views
3

Я хочу написать шаблон, который создает новые проекты в RStudio. То, что я хочу сделать, это:Скрипт для создания нового проекта в Rstudio

  1. Создать новый Rstudio проект в папке под названием «MyNewProject»
  2. Создайте новый проект с использованием ProjectTemplate пакета в этой папке: create.project('MyNewProject').
  3. Внести изменения в эту папку.

Я считаю, что могу кодировать шаги 2 и 3. Но я не знаю, как создать новый проект в RStudio скриптом. Если это возможно, как я могу это сделать?

+0

Принимали ли вы посмотрите на 'devtools', в частности,' create' функции? (Обратите внимание, что это создаст пакет * R * в папке, а не только проект R) –

+0

@DavidRobinson Нет, я этого не сделал. Мне просто нужен код, который создает папку, содержащую файл «MyNewProject.Rproj», и git в этой папке, чтобы сопровождать это на шаге 1. – HBat

+0

Вы можете написать один и поместить его в свой .Rprofile' –

ответ

4

Ничего особенного в .Rproj файл, просто текстовый файл с (или какие-либо значения по умолчанию):

Version: 1.0 

RestoreWorkspace: Default 
SaveWorkspace: Default 
AlwaysSaveHistory: Default 

EnableCodeIndexing: Yes 
UseSpacesForTab: Yes 
NumSpacesForTab: 4 
Encoding: UTF-8 

RnwWeave: knitr 
LaTeX: pdfLaTeX 

Так эта функция будет делать то, что вы после:

myProject <- function(proj, ...) { 

    require(ProjectTemplate) 
    create.project(proj, ...) 

    x <- c("Version: 1.0", "", "RestoreWorkspace: Default", "SaveWorkspace: Default", 
     "AlwaysSaveHistory: Default", "", "EnableCodeIndexing: Yes", 
     "UseSpacesForTab: Yes", "NumSpacesForTab: 4", "Encoding: UTF-8", 
     "", "RnwWeave: knitr", "LaTeX: pdfLaTeX") 

    cat(paste(x, collapse="\n"), file=file.path(proj, paste0(basename(proj), ".Rproj"))) 

    message(paste(basename(proj), "has been created")) 
} 

myProject("MyNewProject.Rproj") 

Для самых hit открыть папку и использование:

qdapTools::repo2github() 

в консоли (из Кур вам понадобится установить qdapTools).

+0

Большое спасибо за ваш ответ. Я считаю, что нет способа создать новый проект из интерфейса RStudio по R-коду. Хорошо. Я могу создать шаблон проекта, используя предложенные вами методы. – HBat

2

Я знаю, что это немного более старый вопрос, но для других там есть способ кодирования .Rproj в скрипте.

Если вы посмотрите на функцию devtools::create, есть функция, называемая use_rstudio. Глядя на содержимое этой функции вы получите:

> devtools::use_rstudio 
function (pkg = ".") 
{ 
    pkg <- as.package(pkg) 
    path <- file.path(pkg$path, paste0(pkg$package, ".Rproj")) 
    if (file.exists(path)) { 
     stop(pkg$package, ".Rproj already exists", call. = FALSE) 
    } 
    message("Adding RStudio project file to ", pkg$package) 
    template_path <- system.file("templates/template.Rproj", 
     package = "devtools") 
    file.copy(template_path, path) 
    add_git_ignore(pkg, c(".Rproj.user", ".Rhistory", ".RData")) 
    add_build_ignore(pkg, c("^.*\\.Rproj$", "^\\.Rproj\\.user$"), 
     escape = FALSE) 
    invisible(TRUE) 
} 
<environment: namespace:devtools> 

смотрите в разделе template_path? Это код, который вы можете использовать для создания файла .Rproj. Таким образом, конечный код в сценарии будет:

path <- file.path('path/to/folder', paste0('foldername', ".Rproj")) 
template_path <- system.file("templates/template.Rproj", 
    package = "devtools") 
file.copy(template_path, path) 

Теперь вы можете создать .Rproj из кода! :)

Смежные вопросы