Power BI中的R脚本将日期返回为Microsoft.OleDb.Date

ves*_*and 3 r powerbi

我正在尝试使用其中的Run R Script功能转换Power BI中的表Edit Query.表的源是一个csv文件,其日期列的格式为2017-01-04(yyyy-mm-dd):

2017-01-04
2017-01-03
2017-01-02
2017-01-01
2016-12-31
2016-12-30
2016-12-29
2016-12-28
2016-12-27
2016-12-26
2016-12-25
2016-12-24
2016-12-23
2016-12-22
Run Code Online (Sandbox Code Playgroud)

使用Get Data,Power BI显示相同的日期列,如下所示:

在此输入图像描述

打开之后Edit Query window,同样的日期列仍然如下所示:

在此输入图像描述

但是,当尝试使用相同的数据运行R sctript时,该列仅包含如下所示的"值" Microsoft.OleDb.Date:

在此输入图像描述

我正在运行的R脚本很简单:

# 'dataset' holds the input data for this script
output <- head(dataset)
Run Code Online (Sandbox Code Playgroud)

如果我尝试更改数据类型,则返回错误:

在此输入图像描述

这一切对我来说都很奇怪,而且我没有找到使用谷歌的合理解释.

有什么建议?

ves*_*and 8

我已经在评论中提供了一个解决方案,但我也会在这里添加一个详细的建议.

Power BI中应用的步骤和生成的日期列应如下所示: 在此输入图像描述

以下是详细信息:

  1. 从csv文件加载数据后,转到Edit Queries并将数据类型更改为文本:

在此输入图像描述

  1. 运行R脚本

  2. 脚本提供输出后,将数据类型更改回日期.


小智 6

上周我徘徊在这个答案上,发现它对我不起作用。我从 R 脚本收到一条错误,指出“字符串不是标准的明确格式”。我假设这是由于自原始答案以来这些年来 Power BI 发生的许多更新,因为据我所知,所有日期都采用完全相同的格式(如果我运行,则不会发生此错误)数据分别在 R/RStudio 中)。我想我会把我的解决方案留给那些像我一样遇到这种情况的人。

我做了与韦斯特兰的解决方案完全相同的事情,除了将数据类型更改为文本之外,我必须将其更改为整数:

1) 编辑查询。2) 将所有日期列转换为“整数”。3) 运行 R 脚本,并将日期列从数字转换为日期:

在 R 中,这要求您在从整数转换回日期时使用 as.Date() 或 lubridate::as_date() 以及 origin 参数 origin = "1899-12-30" 来获取正确的日期。(这是起源而不是“1900-01-01”,因为我听说 Excel/Power BI 没有考虑 20 世纪初的两个闰年。)