2016-12-29 9 views
2

Я могу запустить следующий пример скрипта из пакета SWSamp в консоли, но при вязании в PDF я получаю ошибку isIncomplete (con). Этот пакет требует использования не менее 2 ядер, и мне интересно, связана ли эта ошибка соединения с попыткой запуска параллельно.isIncomplete (con) error при вязании pdf

--- 
title: "Test" 
output: pdf_document 
--- 

```{r setup, include=FALSE} 
knitr::opts_chunk$set(echo = TRUE) 
``` 

```{r} 
    install.packages("http://www.statistica.it/gianluca/SWSamp/SWSamp_0.3.tar.gz", type="source", dependencies=TRUE, repos=NULL) 
    library(SWSamp) 
``` 

```{r} 
    mu1=0.3 
    b.trt=-0.3875 
    sigma.e=1.55 
    J=5 
    K=20 
    sig.level=0.05 
    n.sims=10 
    rho=0.5 
    pow.cont <- sim.power(I=14, J=J, H=NULL, K=K, rho=rho, mu=mu1, sigma.e=sigma.e, 
         b.trt=b.trt, formula=NULL, n.sims=n.sims, 
         sig.level=sig.level, n.cores=2) 
    pow.cont$power 
``` 

Бросить из линий 16-28 (test.Rmd) Ошибки в isIncomplete (CON): неправильного подключения вызовов: ... evaluate_call -> handle_output -> -> isIncomplete Бросить из линий 16- 28 (test.Rmd) Ошибка в isOpen (con): недействительное соединение Вызовы: ... in_dir -> оценить -> calc_call -> -> isOpen Ошибка в close.connection (con): недействительное соединение Вызовы: - > -> закрыть -> закрыть.соединение Исполнение приостановлено

> sessionInfo() 
R version 3.3.2 (2016-10-31) 
Platform: x86_64-apple-darwin13.4.0 (64-bit) 
Running under: macOS Sierra 10.12.1 

locale: 
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8 

attached base packages: 
[1] stats  graphics grDevices utils  datasets methods base  

other attached packages: 
[1] SWSamp_0.3  lme4_1.1-12 Matrix_1.2-7.1 

loaded via a namespace (and not attached): 
[1] Rcpp_0.12.8  knitr_1.15.1  magrittr_1.5  splines_3.3.2  MASS_7.3-45  
[6] doParallel_1.0.10 lattice_0.20-34 foreach_1.4.3  minqa_1.2.4  stringr_1.1.0  
[11] tools_3.3.2  parallel_3.3.2 grid_3.3.2  nlme_3.1-128  htmltools_0.3.5 
[16] iterators_1.0.8 yaml_2.1.14  rprojroot_1.1  digest_0.6.10  nloptr_1.0.4  
[21] codetools_0.2-15 evaluate_0.10  rmarkdown_1.3  stringi_1.1.2  compiler_3.3.2 
[26] backports_1.0.4 
+0

[Этот ответ] (http://stackoverflow.com/questions/11162824/how-do-use-the-ggmap-librarys-get-map-function-inside-of-knitr) дает некоторый намек о возможных способах закрытия другого пакета, но решение 'evaluation()' не работает для меня. –

+0

Функция 'sim.power' использует функцию' closeAllConnections() ', которая, вероятно, вмешивается в knitr. –

+0

Мое временное решение состоит в том, чтобы переопределить функцию '' sim.power() 'с запросом' closeAllConnections() 'comment. Я не знаю, имеет ли это побочные эффекты, но, похоже, работает для меня. Лучший подход? –

ответ

2

sim.power() функция работает closeAllConnections(), которая препятствует knitr в соответствии с этим SO answer. Решение в этом ответе состояло в том, чтобы обернуть выражение в кавычки и функцию evaluate(), но это не сработало для меня.

В качестве временного решения я переопределил функцию sim.power() с запросом closeAllConnections(). Я не знаю, имеет ли это побочные эффекты, но, похоже, работает для меня. С удовольствием принимаю лучшие ответы.