将列表传输到R中的双精度向量时,为什么元素数不相等

时间:2018-10-31 18:48:38

标签: r

我正在尝试将ulist中的元素数量从列表中翻倍,但是我看到元素数量从1000翻倍至1000000: 这是代码:

e = runif(1000, min=1, max=10)
t = rpois(1000,lambda = 64.497)
mydata <- lapply(1:1000, function(i) { 
  DU = sample(x=1:3,size = 1,replace = T)
  if(DU==1){
    v=10000
    s=100     
  }
  if(DU==2){ 
    v=7500
    s=50
  }
  if(DU==3){
    v=5000
    s=10
  }    
  nt = v * (s - (t+ e))
})

t_totall = unlist(mydata)    
summary(t_totall)    
length(t_totall)    
length(mydata)

1 个答案:

答案 0 :(得分:0)

问题解决了!我没有在每个分布中放入样本数,而是在每个分布中只放入了1个样本(runif和rpois),这样,每次迭代将只从特定分布中获取一个随机变量,而不是每次获取1000。

mydata <- lapply(1:1000, function(i) { 
  DU = sample(x=1:3,size = 1,replace = T)
  if(DU==1){
    v=10000
    s=100     
  }
  if(DU==2){ 
    v=7500
    s=50
  }
  if(DU==3){
    v=5000
    s=10
  } 

e = runif(1, min=1, max=10)
t = rpois(1,lambda = 64.497)   
  nt = v * (s - (t+ e))
})

t_totall = unlist(mydata)    
summary(t_totall)    
length(t_totall)    
length(mydata)