我tbl_A and tbl_B
在Power BI文件中有两个表,我想使用其中的Run R Script
功能进行转换和分析Edit Queries
.
这将包括处理缺失值和连接表.但是,在启动R时,似乎我一次只能在一个表上进行操作.这是因为该Run R Script
功能仅导入单击Run R Script
按钮时处于活动状态的表中的数据.然后将该数据存储在dataset
变量中.
如果这是正确的,在我看来,在Power BI中R`的实际使用将非常有限.我知道我可以在释放R 之前加入表格.对于像这样的简单情况,这将是一个可行的解决方案,但肯定不适用于更复杂的数据结构.有关如何在Power BI中使用R对多个表进行操作的任何建议?
精简版:
在 中Edit Queries,插入 R 脚本时,只需[dataset = "Renamed Columns", dataset2 = tbl_A]
在Formula bar. 在这种情况下,Renamed Columns
指的是您APPLIED STEPS插入 R 脚本的表(在 下)的状态,并tbl_A
指的是另一个可供您使用的表。并检查有关隐私的所有设置。
长版
根据我的评论,这是一个基于商业智能博客的建议和PowerBI 论坛贡献的解决方案:
首先,您必须编辑一些设置。去Options and Settings | Options。在 下Privacy,选择Always ignore Privacy Level settings。当然风险自负...
现在,去Options and Settings | Data Source Settings。选择来源并单击Edit permissons。将其设置为Public:
现在我们可以开始了:
我将从头开始,因为我不知道任何其他数据加载方法会在 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
Run Code Online (Sandbox Code Playgroud)
tbl_A 截图
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
Run Code Online (Sandbox Code Playgroud)
tbl_B 截图
在 PowerBI 的主窗口中,tbl_A
使用Get Data以下命令加载:
做同样的事情,tbl_B
这样你就会在Fields菜单下得到两个单独的表格:
单击选项卡Edit Queries下方Home并确保Formula Bar可见。如果没有,您可以在View以下位置激活它:
根据您的表的加载方式,PowerBI 将在该过程中添加几个步骤。这些步骤可见于Query Settings:
除此之外,PowerBI 将日期的数据类型更改为您猜对的日期。这可能会在以后引发问题。为了避免这种情况,我们可以将两个表中日期的数据类型更改为Text:
在对两个表完成此操作后,确保 tbl_B 处于活动状态,并查看Query Settings. 您会看到Changed Type
在数据加载过程中添加了一个新步骤:
我们将添加另一个步骤,以使我们即将推出的 R 脚本尽可能简单。在该脚本中,我们将使用该rbind()
函数连接表。除非不同表中的列名相同,否则这将触发错误。因此,继续将 B 列中的名称分别从Price3
和Price4
更改为Price1
和Price2
:
现在,下面的应用步骤Query settings应该是这样的:
最后一步的名称至关重要,因为您在编写 R 脚本时将不得不引用重命名列(或任何其他您想调用的名称)。最后,我们可以做到这一点。
在 下Transform,单击Run R Script。如下图所述,该变量dataset
将包含脚本的原始数据。在这种情况下,tbl_B
如果tbl_B
单击时处于活动表,它将采用数据框的形式Run R Script:
现在,让脚本保持原样,单击OK,然后查看公式栏:
上图告诉我们两个重要的事情。首先,我们可以看到这个过程到目前为止进展顺利,我们有一张空桌子。其次,我们可以看到,dataset
是指tbl_B
在我们离开它步骤后的状态 Renamed Columns
。如果您在其他地方阅读过这些内容,那么这一部分可能会令人困惑。在 中Formula bar,您可以通过添加 来输入第二个数据集, dataset2=tbl_A
,这样公式现在看起来像这样:
打 Enter
在 下Query Settings,您现在将看到有一个新步骤,您可以在其中编辑 R 脚本:
单击它以返回 R 并添加这个小片段:
df_B <- dataset
df_A <- dataset2
df_temp <- rbind(df_A, df_B)
output <- df_temp
Run Code Online (Sandbox Code Playgroud)
当您单击 时OK,您将看到以下内容:
没关系,公式栏看起来像一团糟,只需继续并单击Table旁边的output。
就是这个!!
转到Home并单击Close & Apply以退出Query Editor. 现在,您可以检查 R 脚本下的输出Fields,或在Data如下图所示的选项卡中:
最终结果将是您的原始版本,tbl_B
其中tbl_A
添加了列。不太花哨,但是现在您已经在 R 脚本中组合了两个数据集,您可以将 R 的更多部分释放到您的工作流程中。