在 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 这是一个脚本,可以在列表中创建网站集,网站,列表和项目。它旨在模拟一个大的创造