簡體   English   中英

Power BI 中的 R 腳本將日期返回為 Microsoft.OleDb.Date

[英]R script in Power BI returns date as Microsoft.OleDb.Date

精華:

為什么 Powerbi 會像這樣顯示2017-01-04 ( yyyy-mm-dd ) 形式的數據?

在此處輸入圖片說明


細節

我正在嘗試使用Edit QueryRun R Script功能轉換 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 腳本時,該列僅包含“值” Microsoft.OleDb.Date如下所示:

在此處輸入圖片說明

我正在運行的 R 腳本很簡單:

# 'dataset' holds the input data for this script
output <- head(dataset)

如果我嘗試更改數據類型,則會返回錯誤:

在此處輸入圖片說明

這一切對我來說似乎很奇怪,而且我還沒有使用 Google 找到合理的解釋。

有什么建議?

我已經在評論中提供了解決方案,但我也會在這里添加詳細的建議。

Power BI 中應用的步驟和生成的日期列應如下所示: 在此處輸入圖片說明

以下是詳細信息:

  1. 從 csv 文件加載數據后,轉到編輯查詢並將數據類型更改為文本:

在此處輸入圖片說明

  1. 運行 R 腳本

  2. 腳本提供輸出后,將數據類型更改回最新

上周我在這個答案上徘徊,發現它對我不起作用。 我會收到來自 R 腳本的錯誤消息,指出“字符串不是標准的明確格式”。 我假設這是由於自原始答案以來 Power BI 多年來發生了許多更新,因為據我所知,所有日期都采用完全相同的格式(如果我運行,則不會發生此錯誤R/RStudio 中的數據)。 我想我會把我的解決方案留給像我一樣遇到這種情況的人。

我做了與vestland的解決方案完全相同的事情,除了將數據類型更改為文本之外,我必須將其更改為整數:

1) 編輯查詢。 2) 將所有日期列轉換為“整數”。 3) 運行 R 腳本,並將日期列從數字轉換為日期:

在 R 中,這要求您使用 as.Date() 或 lubridate::as_date(),並帶有 origin 參數 origin = "1899-12-30" 以在從整數轉換回日期時獲得正確的日期。 (這是起源而不是“1900-01-01”,因為我聽說 Excel/Power BI 不考慮 20 世紀初的兩個閏年。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM