如何用R语言rpois函数生成多均值泊松分布随机数并合并为向量
在R中生成指定数量的泊松分布随机数并合并
你遇到的问题是对rpois函数的参数理解有误:rpois的第一个参数n是要生成的随机数总个数,而非“分组生成的数量”。当你传入c(5,3)作为n时,R会将其视为两个独立的生成请求,最终返回2个随机数(分别对应n=5&lambda=2、n=3&lambda=3各生成1个),这就是结果长度为2的原因。
以下是两种正确的实现方式:
方法1:分开生成后合并
先分别生成对应数量的随机数,再用c()函数合并为一个向量:
# 生成5个均值为2的泊松随机数 set1 <- rpois(5, 2) # 生成3个均值为3的泊松随机数 set2 <- rpois(3, 3) # 合并为长度8的向量 combined_vec <- c(set1, set2)
方法2:构造匹配长度的lambda向量
通过rep()函数构造长度为8的lambda向量(前5个为2,后3个为3),直接传入rpois生成所有随机数:
combined_vec <- rpois(8, rep(c(2, 3), times = c(5, 3)))
两种方法都能得到你需要的长度为8的向量,其中方法2更简洁。
内容的提问来源于stack exchange,提问作者Asigan
相关产品推荐
相关产品推荐

