在 Rstudio 中创建新项目的脚本

Posted

技术标签:

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

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

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

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

【问题讨论】:

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

两个有用的参考是:

    usethis

    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。

以上是关于在 Rstudio 中创建新项目的脚本的主要内容,如果未能解决你的问题,请参考以下文章

powershell 这是一个脚本,可以在列表中创建网站集,网站,列表和项目。它旨在模拟一个大的创造

如何在 NetBeans 中创建我的项目的 war 文件?

在 GUI 中创建多个曲面图

如何在HTML / Javascript中创建可编辑的组合框?

从 SQL 脚本导入总是失败

如何在 Eclipse 中创建 Spring MVC 项目?