用于在Rstudio中创建新项目的脚本

用于在Rstudio中创建新项目的脚本,r,rstudio,project-template,R,Rstudio,Project Template,我想写一个模板,在RStudio中创建新项目。我想做的是: 在名为“MyNewProject”的文件夹中创建新的Rstudio项目 使用此文件夹中的ProjectTemplate包创建一个新项目,方法是:Create.project('MyNewProject') 在此文件夹中进行一些修改 我相信我可以编写步骤2和步骤3。但我不知道如何通过脚本在RStudio中创建新项目。如果可能的话,我该怎么做呢?对于.Rproj文件没有什么特别之处,只是一个文本文件,其中包含(或任何默认值): 因此,此函数

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

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

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

    对于
    .Rproj
    文件没有什么特别之处,只是一个文本文件,其中包含(或任何默认值):

    因此,此函数将执行您所要执行的操作:

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

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

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

    现在可以从代码中创建
    .Rproj
    :)

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

    我想我会给出一个答案以防对其他人有帮助


    对于新的软件包
    使用此
    ,问题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()
    
    两个有用的参考资料是:


  • 您是否查看了
    devtools
    ,特别是
    create
    函数?(请注意,这将在文件夹中创建一个R包,而不仅仅是R项目)@DavidRobinson不,我没有。我只需要一个代码,创建一个文件夹,其中包括“MyNewProject.Rproj”文件和一个git,在步骤1中随附。您可以编写一个,并将其放入
    .Rprofile
    非常感谢您的回答。我相信没有方法通过R代码从RStudio的接口创建一个新项目。那很好。我可以使用您提供的方法创建项目模板。我使用system.file使用您的脚本已经有一段时间了,但它不再有效。不知道出了什么问题?@marc Function
    use\rstudio
    现在是软件包的一部分
    use此
    与2018年10月30日发布的2.0.0版devtools软件包分离。看见
    library(usethis)
    create_project(path = "MyNewProject", open = TRUE, rstudio = TRUE)
    
    library(usethis)
    use_git()
    
    use_github()