【问题标题】:merge two or more simulations合并两个或多个模拟
【发布时间】:2017-02-22 19:44:33
【问题描述】:

我正在模拟一年中每周和每月的威布尔分布的风力发电。因为风速/功率每周都有差异,所以我想将它们全部结合起来,然后复制结果以查看特定风力位置在特定时间内可以产生多少能量。第一个模拟产生第一周的结果,第二个模拟产生第二周的结果,依此类推,目标是合并一个月的结果,然后复制所需月数的结果。

first<-rweibull(7,3.28,2.14) #time series for days in first week
second<-rweibull(7,3.33,2.112)# time series for days in second week 
combined<-replicate(2,c(first,second))#combined

     [,1]      [,2]
 [1,] 2.3314627 2.3314627
 [2,] 2.4219863 2.4219863
 [3,] 2.2993156 2.2993156
 [4,] 0.9576821 0.9576821
 [5,] 0.8065639 0.8065639
 [6,] 2.2820711 2.2820711
 [7,] 0.6315118 0.6315118
 [8,] 1.8152144 1.8152144
 [9,] 0.9296449 0.9296449
[10,] 1.6707807 1.6707807
[11,] 1.7307920 1.7307920
[12,] 2.2075004 2.2075004
[13,] 2.0368642 2.0368642
[14,] 2.5320678 2.5320678      

现在的问题是,当我复制时,我得到了相同的结果,但结果应该不同。是否有任何简单快速的解决方案。

【问题讨论】:

  • 你能再解释一下吗?预期的输出是什么样的?我没有看到您将任何函数传递给 replicate ,当您说组合并使用复制时,它令人困惑......cbind 也应该组合
  • 我正在模拟一年中每周和每月的威布尔分布的风力发电。因为风速/功率每周都有差异,所以我想将它们全部组合起来,然后复制结果以查看特定风力位置在特定时间内可以产生多少能量
  • 或者你应该传递类似replicate(2, c(rweibull(7,3.28,2.14),rweibull(7,3.33,2.112)) ) 的东西。而不是存储在变量中并稍后传递它
  • 这是一个实用的解决方案,但我正在寻找更优雅的解决方案

标签: r merge simulation


【解决方案1】:

您可以这样做,而不是将变量传递给replicate

代码

fun <- function( ){
  first  <- rweibull(7,3.28,2.14) 
  second <- rweibull(7,3.33,2.112) 
}

replicate( 2, fun() )

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-22
    • 2015-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-14
    • 1970-01-01
    相关资源
    最近更新 更多