如何从PBI Slicer读取值并在PowerBI的Rscript(数据源)中使用?

问题描述 投票:0回答:3

是否可以从PowerBI读取PBI Slicer的选定值并在R脚本(数据源)中使用它来检索结果,从而生成新的数据源。

问题是列过滤器在使用 R 脚本生成的数据帧上效果很好,但我需要的是根据特定列的选定值进行计算,而不仅仅是过滤数据。

为了简单起见,我会这样说,是否可以在 PowerBI 中创建动态 Rscript 而不是静态 Rscript?

powerbi rscript powerbi-datasource
3个回答
1
投票

如果您想读取 PBI 切片器/过滤器的值并相应地重新计算数据并生成图形,R Script Visual 就是答案。

  • 使用加载的列和过滤器创建 R 脚本,
  • 确保这会生成视觉效果,否则会出现错误。
  • 在计算过程中生成的 DF 不会加载到数据源中,但可以用于刷新图表。
  • 视觉效果,从过滤器读取数据,运行脚本生成 DF,从而生成动态图。


0
投票

通过在查询编辑器 UI 中进行尽可能多的数据转换,您可能会取得更多进展。

您的要求听起来像“添加自定义列”或“添加条件列”,您可以在其中根据其他列中的值派生新列。


0
投票

背景: 我知道这是一篇较旧的帖子,但我相信我是根据自己的项目需求来解决这个问题的,并且它在一个小例子中工作得很好。我可以说,当我将它转换为大型数据集时,它非常慢,以至于我可能不会使用它;然而,我想也许我应该分享这些发现。 我的目标是通过“R脚本视觉”通过ggplot2::geom_col创建一个堆积柱形图。然后,我希望能够根据切片器中的用户选择来更改数据的填充方式(颜色编码)。

答案: 为此,我有以下示例表:

  1. 具有两个不同变量的假数据(x,y)可以通过(“Filter_Foo”,“Filter_Bar”)进行颜色编码。
  2. 包含我想要过滤 R 图形的字段名称的静态表(即“Filter_Foo”、“Filter_Bar”)

然后我在报告上看到了以下视觉效果。值得注意的是,切片器是使用“Fill_To_R”表制作的,其想法是用户选择要传递到 R 脚本中的值。

然后创建一个定义为切片器中选择的值的度量,这就是传递到 R 脚本中的值。我在报告的最右侧添加了一张“卡片”,它只是显示度量(即所选值)。

然后创建 R 视觉对象,引入要绘制的数据 (X,Y) 以及我想要按颜色编码的参数 (“Filter_Foo”、“Filter_Bar”),但最重要的是定义的度量 (“选择”)。

我用来生成图形的 R 脚本在这里。请注意,我必须引用“dataset$Selection[1]”的第一条记录 - 没有索引号,它不起作用。

require("ggplot2")
library(ggplot2)

ggplot() + 
    {if(dataset$Selection[1]=="Filter_Foo"){geom_col(data = dataset, aes(y = Y, x = X, fill=Filter_Foo), width=0.8)}} +
    {if(dataset$Selection[1]=="Filter_Bar"){geom_col(data = dataset, aes(y = Y, x = X, fill=Filter_Bar), width=0.8)}} +
    xlab("X Category") +
    ylab("Total Y") + 
    coord_cartesian(xlim = c(0,10), ylim=c(0,25)) +
    annotate(geom="text", label = paste0("Selection: ", dataset$Selection[1]), x=1, y=25, vjust=1, hjust=1, size= 3, col="black") 

现在,根据用户是否选择了“Filter_Bar”或“FilterFoo”,R 视觉效果将采用该值并相应地调整绘图。您可以直接扩展此示例,也可以将其用作将度量读取到 R 中的参考,以便按照您的意愿使用它。

© www.soinside.com 2019 - 2024. All rights reserved.