加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

在Power BI中使用“编辑查询”和“R”对多个表/数据集执行操作

发布时间:2020-12-14 04:34:47 所属栏目:大数据 来源:网络整理
导读:我在Power BI文件中有两个表tbl_A和tbl_B,我想使用编辑查询中的Run R Script功能进行转换和分析. 这将包括处理缺失值和连接表.但是,在启动R时,似乎我一次只能在一个表上进行操作.这是因为Run R Script功能仅导入单击Run R Script按钮时处于活动状态的表中的
我在Power BI文件中有两个表tbl_A和tbl_B,我想使用编辑查询中的Run R Script功能进行转换和分析.

enter image description here

这将包括处理缺失值和连接表.但是,在启动R时,似乎我一次只能在一个表上进行操作.这是因为Run R Script功能仅导入单击Run R Script按钮时处于活动状态的表中的数据.然后将该数据存储在数据集变量中.

enter image description here

如果这是正确的,在我看来,在Power BI中R`的实际使用将非常有限.我知道我可以在释放R之前加入表格.对于像这样的简单情况,这将是一个可行的解决方案,但肯定不适用于更复杂的数据结构.有关如何在Power BI中使用R对多个表进行操作的任何建议?

解决方法

精简版:

在“编辑查询”中,插入R脚本时,只需在“公式”栏中添加[dataset =“Renamed Columns”,dataset2 = tbl_A].在这种情况下,Renamed Columns指的是您正在插入R脚本的表的状态(在APPLIED STEPS下),而tbl_A指的是您可以使用的另一个表.并检查有关隐私的所有设置.

长版

跟进我的评论,这是一个基于business intelligence blog的建议和PowerBI forum中的贡献的解决方案:

首先,您必须编辑一些设置.转到选项和设置|选项.在隐私下,选择始终忽略隐私级别设置.你自己冒风险……

enter image description here

现在,转到选项和设置|数据源设置.选择源并单击“编辑权限”.将其设置为公共:

enter image description here

现在我们很高兴:

我将从头开始,因为我不知道在PowerBI中会触发任何其他数据加载方法的怪癖.我有两个单独的Excel文件,每个文件分别包含一个名为tbl_A和tbl_B的工作表.
这两个表的数据如下所示:

tbl_A数据

Date        Price1  Price2
05.05.2016  23,615  24,775
04.05.2016  23,58   24,75
03.05.2016  0       24,35
02.05.2016  22,91   24,11
29.04.2016  22,93   24,24

tbl_A截图

enter image description here

tbl_B数据

Date        Price3  Price4
02.06.2016  19,35   22,8
01.06.2016  19      22,35
31.05.2016  19,71
30.05.2016  15,5    21,85
27.05.2016  19,43   22,52

tbl_B截图

enter image description here

在PowerBI的主窗口中,使用Get Data加载tbl_A:

enter image description here

使用tbl_B执行相同的操作,以便在“字段”菜单下最终得到两个单独的表:

enter image description here

单击“主页”选项卡下的“编辑查询”,确保公式栏可见.如果没有,您可以在View下激活它:

enter image description here

根据表的加载方式,PowerBI将在此过程中添加几个步骤.这些步骤在“查询设置”下可见:

enter image description here

除其他外,PowerBI将日期的数据类型更改为,您猜对了,日期.这可以在trigger problems之后.为避免这种情况,我们可以将两个表中日期的数据类型更改为Text:

enter image description here

在为两个表完成此操作后,请确保tbl_B处于活动状态,并查看“查询设置”.您将在数据加载过程中添加一个新步骤Changed Type:

enter image description here

我们将添加另一个步骤,以使我们即将推出的R脚本尽可能简单.在该脚本中,我们将使用rbind()函数加入表.除非不同表中的列名相同,否则这将触发错误.因此,请继续将B列中的名称分别从Price3和Price4更改为Price1和Price2:

enter image description here

现在,查询设置下的应用步骤应如下所示:

enter image description here

最后一步的名称至关重要,因为在编写R脚本时,您将不得不引用重命名列(或其他任何您想要调用的列).最后我们可以做到这一点.

在Transform下,单击Run R Script.如下图所示,变量数据集将包含脚本的原始数据.在这种情况下,如果单击Run R Script时tbl_B是活动表,则它将以数据帧的形式显示为tbl_B:

enter image description here

现在,保持脚本不变,单击“确定”,然后查看公式栏:

enter image description here

上面的图片告诉我们两件重要的事情.首先,我们可以看到到目前为止流程已经顺利进行,我们有一个空表.其次,我们可以看到数据集引用了在重命名的列之后我们离开它的状态中的tbl_B.如果你在其他地方读过这些东西,那么这就是令人困惑的部分.在公式栏中,您可以通过添加dataset2 = tbl_A来输入第二个数据集,以便公式现在如下所示:

enter image description here

按Enter键

在“查询设置”下,您将看到可以编辑R脚本的新步骤:

enter image description here

点击它返回R并添加这个小片段:

df_B <- dataset
df_A <- dataset2
df_temp <- rbind(df_A,df_B)

output <- df_temp

单击“确定”后,您将看到以下内容:

enter image description here

没关系,公式栏看起来像一团糟,只需继续并单击输出旁边的表.

就是这个!!

enter image description here

转到主页,然后单击关闭&应用以退出查询编辑器.现在,您可以在“字段”下的R脚本中检查输出,或者在“数据”选项卡中检查输出,如下图所示:

enter image description here

最终结果将是原始tbl_B的一个版本,其中添加了tbl_A中的列.不太花哨,但现在你已经在你的R脚本中组合了两个数据集,你就能够将R的更大部分释放到你的工作流程中.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读