gpt4 book ai didi

r - 系统打开 RStudio 关闭连接

转载 作者:行者123 更新时间:2023-12-04 00:41:29 30 4
gpt4 key购买 nike

我正在尝试使用 R 打开 RStudio 中使用的 .Rproj 文件。我已经成功使用下面的代码(从 Ananda here 中窃取)。但是,从 R 调用的打开 RStudio 的连接在文件打开后并未关闭。 如何在打开 .Rproj 文件后切断这个“连接”?(PS 这尚未在 Linux 或 Mac 上测试过)。

## Create dummy .Rproj
x <- c("Version: 1.0", "", "RestoreWorkspace: Default", "SaveWorkspace: Default",
"AlwaysSaveHistory: Default", "", "EnableCodeIndexing: Yes",
"UseSpacesForTab: No", "NumSpacesForTab: 4", "Encoding: UTF-8",
"", "RnwWeave: knitr", "LaTeX: pdfLaTeX")

loc <- file.path(getwd(), "Bar.rproj")
cat(paste(x, collapse = "\n"), file = loc)

## wheresRStudio function to find RStudio location
wheresRstudio <-
function() {
myPaths <- c("rstudio", "~/.cabal/bin/rstudio",
"~/Library/Haskell/bin/rstudio", "C:\\PROGRA~1\\RStudio\\bin\\rstudio.exe",
"C:\\RStudio\\bin\\rstudio.exe")
panloc <- Sys.which(myPaths)
temp <- panloc[panloc != ""]
if (identical(names(temp), character(0))) {
ans <- readline("RStudio not installed in one of the typical locations.\n
Do you know where RStudio is installed? (y/n) ")
if (ans == "y") {
temp <- readline("Enter the (unquoted) path to RStudio: ")
} else {
if (ans == "n") {
stop("RStudio not installed or not found.")
}
}
}
temp
}

## function to open .Rproj files
open_project <- function(Rproj.loc) {
action <- paste(wheresRstudio(), Rproj.loc)
message("Preparing to open project!")
system(action)
}


## Test it (it works but does no close)
open_project(loc)

最佳答案

不清楚您要做什么。你所描述的对我来说听起来并不像“连接”——它是一个系统调用。

认为您的意思是,在您上面的示例中运行 open_project(loc) 之后,您不会得到 R 提示,直到您关闭由您的函数打开的 RStudio 实例。如果是这种情况,您应该将 wait = FALSE 添加到您的 system 调用中。

您可能还需要在其中添加 ignore.stderr = TRUE 以直接返回提示。我在我的 Ubuntu 系统上遇到了一些关于“QSslSocket:无法解析 SSLv2_server_method”的错误,在我点击“输入”后,它让我回到了提示符。 ignore.stderr 可以绕过它(但也可能意味着在出现严重错误的情况下用户不会收到有意义的错误)。

换句话说,我会将您的 open_project() 函数更改为以下内容,看看它是否符合您的预期:

open_project <- function(Rproj.loc) {
action <- paste(wheresRstudio(), Rproj.loc)
message("Preparing to open project!")
system(action, wait = FALSE, ignore.stderr = TRUE)
}

关于r - 系统打开 RStudio 关闭连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18426726/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com