首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么在R中获得参数是长度为零的?

为什么在R中获得参数是长度为零的?
EN

Stack Overflow用户
提问于 2017-05-17 23:36:45
回答 1查看 992关注 0票数 0

我有一个名为PAP的简单函数。我在想,当我运行它时,为什么会出现以下错误:

Error in if (n.sim < 2) { : argument is of length zero

下面是我的PAP函数:

代码语言:javascript
运行
复制
PAP = function (n.sim, sim.time){

   n.sim = if(n.sim < 1) { n.sim = 1 } # If a user put zero or a negative number, make it 1
sim.time = if(n.sim < 2) { sim.time = 0 } else { sim.time } 

for (i in 1:n.sim) {

  plot( rnorm(1e2) )

 Sys.sleep( sim.time ) }
}

PAP(n.sim = 2, sim.time = 5)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-17 23:43:16

不应该尝试分配if语句的结果,因为这会发生:

代码语言:javascript
运行
复制
> n.sim = 2
> n.sim = if(n.sim < 1) { n.sim = 1 }
> n.sim
NULL

相反,你应该这样做:

代码语言:javascript
运行
复制
PAP = function (n.sim, sim.time){

    if(n.sim < 1) { 
        n.sim = 1 
    } # If a user put zero or a negative number, make it 1
    if(n.sim < 2) { 
        sim.time = 0 
    } # else didn't do anything here so removed

    for (i in 1:n.sim) {

        plot( rnorm(1e2) )

        Sys.sleep( sim.time ) 
    }
}

也就是说,只需使用if作为控制流语句,该语句确定是否执行特定行,并使用if语句中的代码更改变量。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44036348

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档