【发布时间】:2015-02-03 12:17:44
【问题描述】:
我似乎无法使用 parallel 中的 mcfork 在 RStudio 中创建新进程,尽管这适用于 linux / OS X 上的标准 R 控制台。在 RStudio 中创建子进程是否有替代解决方法?
例如,考虑这个函数:
library(parallel)
f <- function() {
p <- parallel:::mcfork()
if (inherits(p, "masterProcess")) {
cat("I'm a child!")
parallel:::mcexit()
}
cat("I'm the master\n")
}
在我的标准 R 控制台中,我得到了预期的输出:
我是大师
> 我还是个孩子!
但在 Rstudio 中,我得到:
我是主人
【问题讨论】:
-
RStudio有许多怪癖。你可能想去他们的论坛看看他们是否/如何支持mcfork。 -
在 RStudio 中从 R 派生的子进程中如何处理 stdout/stderr 重定向特别是一个怪癖,但请注意,如果例如您将该输出重定向到文件,例如
cat("I'm a child!", file = "~/child.txt") -
我投票结束这个问题,因为 R 4+ 甚至不再包括 mcfork,所以永远不会回答这个问题。
-
也很高兴关闭它。
-
@webb R 版本 4 是否会阻止人们使用旧版本的 R 或 R studio?如果没有,那么关闭它是不合适的。