当前位置:  开发笔记 > 编程语言 > 正文

无法运行R代码以模拟随机样本

如何解决《无法运行R代码以模拟随机样本》经验,为你挑选了1个好方法。

我需要做的是绘制1000个随机样本的泊松分布,其中n = 100,lambda = 6

据我所知,这样的代码应该这样做:

 taskpois <- function(size, leng){
  for (i in 1:leng){
    randompois <- rpois(size, 6)
    taskmlepois[i] <- mean(randompois)
  }
  return(taskmlepois)
 }

tasksample <- taskpois(size=100, leng=1000)     

但是在我运行之后没有任何反应.此后,我无法在控制台中编写和运行命令,因为行的开头没有">"符号,R开始崩溃.

我在某种程度上弄错了我编写的代码函数或者它只是错误的代码吗?



1> Tim..:

当您运行taskpois函数时,它不会返回错误消息:

Error in taskmlepois[i] <- mean(randompois) : 
  object 'taskmlepois' not found

...?它应该是因为你没有初始化taskmlepois变量,所以你不能为它赋值!

以下代码将起作用:

taskpois <- function(size, leng){
  taskmlepois <- NULL
  for (i in 1:leng){
    randompois <- rpois(size, 6)
    taskmlepois[i] <- mean(randompois)
  }
  return(taskmlepois)
}

或者,您可以将其初始化为给定长度的数字

taskmlepois <- numeric(size)

这也应该提高性能.但基本上,你可以通过单线实现你想要的:

tapply(rpois(size*leng, 6), rep(1:leng, each = size), mean)

由于吸引了来自rpois被独立同分布抽样他们按顺序不会改变任何东西.

推荐阅读
赛亚兔备_393
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有