我需要做的是绘制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开始崩溃.
我在某种程度上弄错了我编写的代码函数或者它只是错误的代码吗?
当您运行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
被独立同分布抽样他们按顺序不会改变任何东西.