繁体   English   中英

在自定义R包的函数中使用mclapply

[英]Using mclapply in a function in custom R package

我使用R Studio使用这两个站点作为指南来创建一个包:

https://support.rstudio.com/hc/zh-CN/articles/200486488-Developing-Packages-with-RStudio https://www.r-bloggers.com/building-a-package-in-rstudio-is -真的非常容易/

唯一的修改是当我使用R Studio创建程序包时,我使用了使用Rcpp创建R程序包的选项。

软件包中的功能之一如下:

GenerateSims = function(num.sim, alpha0, alpha1, beta1, gamma1, delta, n.sim, covariates, burnin, type)
{
  print("In GenerateSims")

  sims = mclapply(1:num.sim, function(z) {
    GenerateData(alpha0, alpha1, beta1, gamma1, delta, n.sim, covariates, burnin, type)
  },
  mc.cores = 35)

  print("Leaving GenerateSims...")
  return(sims)
}

mc.cores = 1它运行良好。 当我将mc.cores设置为1以外的值时,控制台会打印出“ In GenerateSims”,但会停在那里,就好像它处于无限循环中一样。

函数GenerateData仅使用非基本软件包gamlss.dist::rDPO一个函数。

我的DESCRIPTION文件如下(不确定这是否有助于确定问题):

Package: Summer2017Package
Type: Package
Title: What the Package Does (Title Case)
Version: 0.1.0
Author: Who wrote it
Maintainer: The package maintainer <yourself@somewhere.net>
Description: More about what it does (maybe more than one line)
    Use four spaces when indenting paragraphs within the Description.
License: What license is it under?
Encoding: UTF-8
LazyData: true
Imports: Rcpp (>= 0.12.9), gamlss.dist, parallel, moments, stats
LinkingTo: Rcpp

编辑:我正在运行Debian的计算机上运行此。

因此我发现在GenerateData函数中有一个打印语句。 我摆脱了这个问题,这解决了我的问题。 我还遇到了这篇文章, 从R Studio中的mclapply打印 ,提到从命令行运行R脚本时这不是问题。 因此,这比摆脱我的印刷声明更容易解决。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM