我尝试使用Run R Script
中的Edit Query
功能转换Power BI中的表格。
该表的来源是一个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
使用Get Data
,Power BI会显示与此相同的日期列:
打开Edit Query window
后,同样的日期列仍然如下:
但是,当尝试使用相同数据运行R sctript时,该列仅包含"值" Microsoft.OleDb.Date
喜欢这样:
我正在运行的R脚本只是:
# 'dataset' holds the input data for this script
output <- head(dataset)
如果我尝试更改数据类型,则会返回错误:
这一切对我来说都很奇怪,而且我还没有找到使用谷歌的合理解释。
有什么建议吗?
答案 0 :(得分:6)
我已在评论中提供了解决方案,但我也会在此处添加详细建议。
以下是详细信息:
答案 1 :(得分:3)
我上周在这个答案上徘徊,发现它对我不起作用。我从R脚本收到一个错误消息,“字符字符串不是标准的明确格式”。我认为这是由于自原始答案以来,多年来Power BI发生了许多更新,因为据我所知,所有日期都是完全相同的格式(如果我执行此错误,则不会发生数据分别在R / RStudio中)。我想我会把解决方案留给像我这样的人。
我所做的与vestland的解决方案完全相同,只是我没有将数据类型更改为文本,而是将其更改为整数:
1)编辑查询。 2)将所有日期列转换为“整数”。 3)运行R Script,然后将日期列从数字转换为日期:
在R中,这要求您使用带原点参数origin =“ 1899-12-30”的as.Date()或lubridate :: as_date()来获取从整数转换回来的正确日期至今。 (我听说这是起源,而不是“ 1900-01-01”,因为我听说Excel / Power BI在20世纪初期并没有解决两个leap年。)