【问题标题】:Script for creating a new project in Rstudio在 Rstudio 中创建新项目的脚本
【发布时间】:2014-11-25 09:19:06
【问题描述】:

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

  1. 在名为“MyNewProject”的文件夹中创建一个新的 Rstudio 项目
  2. 使用此文件夹中的ProjectTemplate 包创建一个新项目:create.project('MyNewProject')
  3. 在此文件夹中进行一些修改。

我相信我可以编写步骤 2 和 3。但我不知道如何通过脚本在 RStudio 中创建新项目。如果可以,我该怎么做?

【问题讨论】:

  • 你看过devtools,尤其是create函数吗? (请注意,这将在文件夹中创建一个 R 包,而不仅仅是 R 项目)
  • @DavidRobinson 不,我没有。我只是想要一个代码来创建一个文件夹,其中包含“MyNewProject.Rproj”文件和该文件夹中的一个 git,以在步骤 1 中伴随它。
  • 你可以写一个放在你的.Rprofile

标签: r rstudio project-template


【解决方案1】:

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

对于git 要求,打开文件夹并使用:

qdapTools::repo2github()

在控制台中(当然你需要安装qdapTools)。

【讨论】:

  • 非常感谢您的回答。我相信没有任何方法可以通过 R 代码从 RStudio 的界面创建一个新项目。没关系。我可以使用您提供的方法创建项目模板。
【解决方案2】:

一直在寻找这个东西,并注意到 RStudio 最近为此推出了一些东西。

我想我会给出一个答案,以防它帮助其他人。

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

【讨论】:

    【解决方案3】:

    使用新包usethis,您的问题 1 的简单答案如下:

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

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

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

    library(usethis)
    use_git()
    

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

    use_github()
    

    两个有用的参考是:

    1. usethis

    2. Happy Git and Github for the UseR

    【讨论】:

      【解决方案4】:

      我知道这是一个较老的问题,但对于其他人来说,有一种方法可以在脚本中对 .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! :)

      【讨论】:

      • 我使用 system.file 的脚本已经有一段时间了,但它不再起作用了。不知道出了什么问题?
      • @marc 函数 use_rstudio 现在是包 usethis 的一部分,该包在 2018 年 10 月 30 日发布 2.0.0 devtool 2.0.0 中与 devtools 包分离。见usethis
      猜你喜欢
      • 2018-09-03
      • 1970-01-01
      • 2023-02-03
      • 2015-04-26
      • 2017-09-25
      • 2020-02-07
      • 1970-01-01
      • 2018-03-15
      • 1970-01-01
      相关资源
      最近更新 更多