【问题标题】:Difference running Rscript vs source with ape library使用猿库运行 Rscript 与源代码的区别
【发布时间】:2014-05-03 00:59:29
【问题描述】:

我在一个文件中有以下脚本(称为“temp.R”):

library(ape)
tree <- rbdtree(0.5, 0.05, 5)
bd.time(tree, 0, 0)

当我运行Rscript temp.R 时,我得到了一些结果:

$par
    birth     death 
0.5289875 0.0000000 

$SS
[1] 9.21573

$convergence
[1] 0

$iterations
[1] 6

$evaluations
function gradient 
       8       16 

$message
[1] "relative convergence (4)"

但是,当我运行 R 然后执行:

source('temp.R')

我收到以下错误:

Error in integrate(Pi, 0, Tmax) : non-finite function value

有谁知道为什么Rscript 和source 之间存在差异,一个有效而另一个失败?如果有帮助,这是在 R 中运行 version 的输出:

               _                           
platform       x86_64-apple-darwin10.8.0   
arch           x86_64                      
os             darwin10.8.0                
system         x86_64, darwin10.8.0        
status                                     
major          3                           
minor          0.1                         
year           2013                        
month          05                          
day            16                          
svn rev        62743                       
language       R                           
version.string R version 3.0.1 (2013-05-16)
nickname       Good Sport

更新:当我多次运行Rscript temp.R 时,有时会收到与运行source 时类似的错误消息:

Error in integrate(Pi, 0, Tmax) : non-finite function value
Calls: bd.time ... objective -> CDF.birth.death -> .CDF.birth.death2 -> integrate
Execution halted

【问题讨论】:

    标签: r phylogeny


    【解决方案1】:

    这与 Rscript 和 source() 之间的区别无关,只是您使用的函数依赖于随机过程,并且取决于它是否有效的起点。我没有仔细查看您要具体实现的目标,但您可能需要更改用于 bd.time 函数的值。

    ## works
    set.seed(123)
    library(ape)
    tree <- rbdtree(0.5, 0.05, 5)
    bd.time(tree, 0, 0)
    
    ## doesn't work
    set.seed(12345)
    library(ape)
    tree <- rbdtree(0.5, 0.05, 5)
    bd.time(tree, 0, 0)
    

    【讨论】:

    • 使用种子 123,它可以与 Rscript 一起使用,但它不使用 source()。
    猜你喜欢
    • 2015-12-02
    • 1970-01-01
    • 2014-07-18
    • 2011-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-23
    相关资源
    最近更新 更多