【问题标题】:How can I fork a new process using mcfork in RStudio?如何在 RStudio 中使用 mcfork 分叉一个新进程?
【发布时间】: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?如果没有,那么关闭它是不合适的。

标签: r rstudio


【解决方案1】:

a comment by Kevin Ushey转换的答案:

在 RStudio 中从 R 派生的子进程中如何处理 stdout/stderr 重定向特别是一个怪癖,但请注意,如果例如,这将起作用。您将该输出重定向到文件,例如cat("I'm a child!", file = "~/child.txt")

-Kevin Ushey 2014 年 12 月 6 日凌晨 5:00

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-19
    • 2012-02-27
    • 2015-08-02
    • 2015-03-16
    • 2014-12-05
    • 1970-01-01
    • 2010-11-29
    • 2015-01-26
    相关资源
    最近更新 更多