我正在尝试使用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
答案 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)})