gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 15:07:44 25 4
gpt4 key购买 nike

我在Power BI文件中有两个表tbl_A and tbl_B,我想使用Run R Script中的Edit Queries功能进行转换和分析。

enter image description here

这将包括处理缺失值和加入表。但是,启动R时,似乎一次只能对一个表执行操作。这是因为Run R Script功能仅从单击Run R Script按钮时处于事件状态的表中导入数据。然后将此数据存储在dataset变量中。

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

现在,转到“选项和设置” |“设置”。数据源设置。选择源,然后单击“编辑许可”。将其设置为公共(public):

enter image description here

现在我们可以出发了:

我将从头开始,因为我不知道PowerBI中任何其他数据加载方法都会引发什么怪癖。我有两个单独的Excel文件,每个文件包含一个分别称为tbl_Atbl_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,35 22,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

单击“主页”选项卡下的“编辑查询”,并确保编辑栏可见。如果没有,您可以在“查看”下将其激活:

enter image description here

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

enter image description here

除其他外,PowerBI将日期的数据类型更改为您猜到的日期。稍后可以trigger problems。为避免这种情况,我们可以将
表和表中的date的数据类型都更改为Text:

enter image description here

对两个表都完成此操作后,请确保tbl_B是事件的,并查看“查询设置”。您会发现在数据加载过程中添加了一个新步骤 Changed Type:

enter image description here

我们将添加另一个步骤,以使即将到来的R脚本尽可能简单。在该脚本中,我们将使用 rbind()函数联接表。除非不同表中的列名相同,否则将触发错误。因此,将B列中的名称分别从 Price3Price4分别更改为 Price1Price2:

enter image description here

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

enter image description here

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

在“变换”下,单击“运行R脚本”。如下图所示,变量 dataset将包含脚本的原始数据。在这种情况下,如果在单击“运行R脚本”时 tbl_B是事件表,则它将是数据框形式的 tbl_B:

enter image description here

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

enter image description here

上图告诉我们两个重要的事情。首先,我们可以看到该过程到目前为止进展顺利,并且我们有一个空表。其次,我们可以看到 dataset中引用了tbl_B,这是在步骤 Renamed Columns之后我们将其保留的状态。如果您在其他地方阅读过这些内容,那么这部分可能会造成混淆。在“公式”栏中,您可以通过添加 , 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的较大部分释放到您的工作流程中。

关于r - 在Power BI中使用“编辑查询”和“R”对多个表/数据集进行操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44897796/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com