【发布时间】:2019-01-11 01:12:31
【问题描述】:
我正在使用 PowerBI 进行蒙特卡罗可视化。到目前为止,我能够执行蒙特卡罗模拟,但我一直坚持创建可视化。
我创建了一个包含两列的表,即迭代和结果,它可以有任意数量的行(例如,例如 1.000)。我想在大约 20 个条形图的条形图中显示结果,但是,由于结果可以是任何数字,我必须将结果分组到 20 个范围内,我将在图表中显示。我已经完成了所有这些工作,我得到了一个漂亮的表,其中包含名称(这是范围的文本表示)、最小值、最大值以及在此范围内的迭代次数。
但后来我注意到迭代的总计数与 1.000 不匹配,我检查了为什么会这样,并且我注意到似乎重新计算了多个变量。所以我创建了一些测试代码来看看发生了什么:
tableMinGevolg = Record.Field(Table.Min(MonteCarlo_runs, "gevolgTotaal"), "gevolgTotaal"),
test1 = tableMinGevolg,
test2 = tableMinGevolg,
test3 = tableMinGevolg,
运行此代码可以/将产生 3 个不同的测试变量值。所以我去挖掘并发现 Power Query M 对 Record 和 Table 表达式使用惰性求值。由于蒙特卡洛模拟使用随机性,我认为这会导致我的问题。每次引用该表时,都会对值进行评估,随机性会产生不同的结果,这会与我的结果相混淆。
我想知道是否可以强制对变量进行热切评估,以便我可以确定在计算这些范围时不会再次执行蒙特卡洛模拟?
【问题讨论】:
标签: powerbi powerquery m