首页 > 解决方案 > 为什么将列表传输到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)

标签: r

解决方案


问题已经解决了!我没有在每个分布中放置样本数量,而是在每个分布中只放置 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)

推荐阅读