如何在Power BI

时间:2017-03-30 14:32:44

标签: r powerbi linear-programming

是否可以在Power BI Desktop中实现以下方案?

  1. 将数据从Excel文件加载到多个表格
  2. 使用来自多个数据源的R脚本进行计算
  3. 将计算结果存储到Power BI(.pbix)
  4. 中的新表中

    我们的想法是使用Power BI Desktop通过R中的线性编程解决“运输问题”。在求解器运行之前,我们需要从多个数据源进行数据转换。我是Power BI的新手。我看到可以应用R脚本来加载和转换数据以及可视化。但我需要保存计算结果的可能性,以便通过Power BI的常规方法进行后续可视化。有可能吗?

1 个答案:

答案 0 :(得分:0)

正如我在评论中提到的那样,this post将解决您的大部分挑战。这种方法在R脚本之后用新表替换了其中一个表,但是您特别要求生成一个 new 表,大概让输入表保持不变。我最近写了一篇文章,您可以使用Python in the Power Query Editor进行此操作。您的情况唯一的区别是R脚本本身。

这是我使用R脚本的方法:


数据样本:

表1

Date,Value1
2108-10-12,1
2108-10-13,2
2108-10-14,3
2108-10-15,4
2108-10-16,5

Table2

Date,Value2
2108-10-12,10
2108-10-13,11
2108-10-14,12
2108-10-15,13
2108-10-16,14

Power Query编辑器:

使用Excel或CSV文件加载这些表格后,您就可以在Power Query Editor:中进行此设置:

enter image description here

现在,您可以按照以下步骤使用R脚本获取新表:

1。。从Date ColumnText的{​​{3}}

2。。单击Enter Data,然后单击OK,默认情况下会得到一个名为Table3的空表。

3。。选择Transform标签,然后单击Run R Script打开Run R Script Edtor

4。。将其保留为空,然后单击OK

5。。从= R.Execute("# 'dataset' holds the input data for this script",[dataset=#"Changed Type"])中删除Formula Bar并插入:= R.Execute("# R Script:",[df1=Table1, df2=Table2])

6。。如果系统提示您这样做,请单击Edit PermissionRun

7。。单击Run R ScritpAPPLIED STEPS旁边的齿轮符号,并插入以下代码段:

R脚本:

df3 <- merge(x = df1, y = df2, by = "Date", all.x = TRUE)
df3$Value3 <- df1$Value1 + df2$Value2

此代码段通过Change the data type产生了一个新的数据帧df3,并添加了一个新列Value3。这是一个非常简单的设置,但是现在您只需替换联接和计算方法就可以执行几乎所有操作:

joining df1 and df2

8。。单击Home > Close&Apply返回Power BI桌面(考虑将Date columnTable3Text的数据类型到Date之前,具体取决于您希望表格,图表和切片器的行为。)

9。。插入一个简单表格以确保一切顺利

enter image description here

我希望这正是您想要的。让我知道是否可以,我会再看一下。