我正在尝试使用其中的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)
如果我尝试更改数据类型,则返回错误:
这一切对我来说都很奇怪,而且我没有找到使用谷歌的合理解释.
有什么建议?
我已经在评论中提供了一个解决方案,但我也会在这里添加一个详细的建议.
以下是详细信息:
运行R脚本
脚本提供输出后,将数据类型更改回日期.
小智 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 世纪初的两个闰年。)