我使用R Studio创建了一个包,使用这两个站点作为指南:
https://support.rstudio.com/hc/en-us/articles/200486488-Developing-Packages-with-RStudio https://www.r-bloggers.com/building-a-package-in-rstudio-is-actually-very-easy/
唯一的修改是当我使用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
中的一个函数。
我的描述文件如下(不确定这是否有助于识别问题):
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的机器上运行它。
答案 0 :(得分:0)
所以我发现在GenerateData函数中有一个print语句。我摆脱了这个,它解决了我的问题。我还发现了这篇文章Printing from mclapply in R Studio,它提到从命令行运行R脚本时这不是问题。所以这比解决我的打印陈述更容易解决。