在R中添加来自模拟的矢量

时间:2016-03-14 09:16:16

标签: r dataframe

我正在尝试使用R.模拟数据。当我运行下面的代码时,它会创建一个包含rexp所有10000次迭代的数组。如何在x中使用另一个向量来存储rpois(1,1,2)中下面代码中的值。

set.seed(0) 
system.time( x <- replicate(10000 ,rexp(rpois(1,1.2), rate=0.1)) )

目前代码中的前几个输出值是。

   [[1]]
   [1] 2.669865 0 0 4.150295

   [[2]]
   [1] 0 4.150295 

   [[3]]
   [1]2.669865 14.759684  4.150295  4.635850 11.200548

所以在修改后的代码中我想包括来自rpois(1,1.2)的计数值,所以上面的输出将是

   [[1]]
   [1] 4 2.669865 0 0 4.150295

   [[2]]
   [1] 2 0 4.150295 

   [[3]]
   [1] 5 2.669865 14.759684  4.150295  4.635850 11.200548

2 个答案:

答案 0 :(得分:1)

我们使用length获取list中每个元素的lengths,使用c连接(Map)'x'中的相应元素

Map(c, lengths(x), x)
#[[1]]
#[1] 4.000000 2.669805 0.000000 0.000000 4.150925

#[[2]]
#[1] 2.000000 0.000000 4.150295

#[[3]]
#[1]  5.000000  2.669865 14.759684  4.150295  4.635800 11.200548

数据

x <- list(c(2.669805, 0, 0, 4.150925), c(0, 4.150295), 
   c(2.669865, 14.759684, 4.150295, 4.6358, 11.200548))

答案 1 :(得分:0)

这是使用lapply的解决方案:

li <- list(c(2.669865, 0, 0, 4.150925), c(0, 4.150295), c(2.669865, 14.759684, 4.150295, 4.635850, 11.200548))
lapply( li ,function(x){c(length(x),x)})