在Rstudio中创建新项目的脚本

时间:2014-09-30 16:48:47

标签: r rstudio project-template

我想写一个在RStudio中创建新项目的模板。我想做的是:

  1. 在名为" MyNewProject"
  2. 的文件夹中创建一个新的Rstudio项目
  3. 使用此文件夹中的ProjectTemplate包创建一个新项目:create.project('MyNewProject')
  4. 在此文件夹中进行一些修改。
  5. 我相信我可以编写第2步和第3步。但我不知道如何通过脚本在RStudio中创建新项目。如果有可能,我该怎么做?

4 个答案:

答案 0 :(得分:5)

.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)。

答案 1 :(得分:3)

正在寻找这件事,并注意到RStudio最近为此做了一些事情。

以为如果有人帮助其他人,我会给出答案。

https://rstudio.github.io/rstudio-extensions/rstudio_project_templates.html

答案 2 :(得分:3)

使用新软件包usethis,对问题1的简单回答为:

library(usethis)
create_project(path = "MyNewProject", open = TRUE, rstudio = TRUE)

此代码将创建一个文件夹“ MyNewProject”,创建“ MyNewProject.Rproj”文件,并使用工作目录“ MyNewProject”打开一个新的RStudio会话。

在新会话中,现在位于“ MyNewProject”文件夹中,您可以运行以下代码来初始化本地git repo

library(usethis)
use_git()

如果所有git都配置正确,您甚至可以在github中创建一个远程仓库,

use_github()

两个有用的参考是:

  1. usethis

  2. Happy Git and Github for the UseR

答案 3 :(得分: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! :)