Power BI 中的 R 脚本 returns 日期为 Microsoft.OleDb.Date
R script in Power BI returns date as Microsoft.OleDb.Date
精华:
为什么 Powerbi 会像这样显示 2017-01-04
(yyyy-mm-dd
) 形式的数据?
详情
我正在尝试使用 Edit Query
中的 Run R Script
功能在 Power BI 中转换 table。
table 的来源是一个 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 脚本时,该列仅包含“值”Microsoft.OleDb.Date
,如下所示:
我 运行ning 的 R 脚本很简单:
# 'dataset' holds the input data for this script
output <- head(dataset)
如果我尝试更改数据类型,则会返回 en 错误:
这一切对我来说都很奇怪,我还没有找到合理的解释 Google。
有什么建议吗?
我已经在评论中提供了解决方案,但我也会在这里添加详细的建议。
Power BI 中的应用步骤和生成的日期列应如下所示:
详情如下:
- 从 csv 文件加载数据后,转到 编辑查询 并将数据类型更改为文本:
运行 R 脚本
脚本提供输出后,将数据类型改回 日期。
上周我仔细研究了这个答案,发现它对我不起作用。我从 R 脚本收到一个错误 "character string is not in a standard unambiguous format." 我假设这是由于自原始答案以来的几年中 Power BI 发生的许多更新,因为据我所知,所有日期格式完全相同(如果我 运行 在 R/RStudio 中单独显示数据,则不会发生此错误)。我想我会把我的解决方案留给那些像我一样发生这种情况的人。
我做了与 vestland 的解决方案完全相同的事情,只是我没有将数据类型更改为文本,而是必须将其更改为整数:
1) 编辑查询。
2) 将所有日期列转换为 "Whole Number."
3) 运行 R 脚本,并将日期列从数字转换为日期:
在 R 中,这需要您使用 as.Date() 或 lubridate::as_date() 以及 origin 参数,origin = "1899-12-30" 以获得正确的日期,当您从整数转换回日期。 (这是起源而不是“1900-01-01”,因为 Excel/Power 我听说 BI 在 20 世纪初没有考虑两个闰年。)
精华:
为什么 Powerbi 会像这样显示 2017-01-04
(yyyy-mm-dd
) 形式的数据?
详情
我正在尝试使用 Edit Query
中的 Run R Script
功能在 Power BI 中转换 table。
table 的来源是一个 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 脚本时,该列仅包含“值”Microsoft.OleDb.Date
,如下所示:
我 运行ning 的 R 脚本很简单:
# 'dataset' holds the input data for this script
output <- head(dataset)
如果我尝试更改数据类型,则会返回 en 错误:
这一切对我来说都很奇怪,我还没有找到合理的解释 Google。
有什么建议吗?
我已经在评论中提供了解决方案,但我也会在这里添加详细的建议。
Power BI 中的应用步骤和生成的日期列应如下所示:
详情如下:
- 从 csv 文件加载数据后,转到 编辑查询 并将数据类型更改为文本:
运行 R 脚本
脚本提供输出后,将数据类型改回 日期。
上周我仔细研究了这个答案,发现它对我不起作用。我从 R 脚本收到一个错误 "character string is not in a standard unambiguous format." 我假设这是由于自原始答案以来的几年中 Power BI 发生的许多更新,因为据我所知,所有日期格式完全相同(如果我 运行 在 R/RStudio 中单独显示数据,则不会发生此错误)。我想我会把我的解决方案留给那些像我一样发生这种情况的人。
我做了与 vestland 的解决方案完全相同的事情,只是我没有将数据类型更改为文本,而是必须将其更改为整数:
1) 编辑查询。 2) 将所有日期列转换为 "Whole Number." 3) 运行 R 脚本,并将日期列从数字转换为日期:
在 R 中,这需要您使用 as.Date() 或 lubridate::as_date() 以及 origin 参数,origin = "1899-12-30" 以获得正确的日期,当您从整数转换回日期。 (这是起源而不是“1900-01-01”,因为 Excel/Power 我听说 BI 在 20 世纪初没有考虑两个闰年。)