as.date函数从google.finance时间序列中返回NA值(例如,19-01-17)

时间:2017-06-13 12:24:39

标签: r as.date

我从google.finance获得了这个数据框,我想要"日期"列为日期格式。

`read.csv("ual.csv", header = TRUE, stringsAsFactors = FALSE)?
 head(Ual_df)
       Date  Open  High   Low Close  Volume
1 19-May-17 76.42 78.34 76.18 77.98 4143616
2 18-May-17 76.32 77.18 75.62 75.98 3559591
3 17-May-17 78.06 78.63 75.94 76.18 5673018` 

如您所见,日期有点模棱两可,因为日期和年份的格式相同。 我这样做了:

Ual_df$Date <- as.Date(Ual_df$Date, "%Y-%m-%d")

它返回了NAs。

  head(Ual_df)
  Date  Open  High   Low Close  Volume
1 <NA> 76.42 78.34 76.18 77.98 4143616
2 <NA> 76.32 77.18 75.62 75.98 3559591
3 <NA> 78.06 78.63 75.94 76.18 5673018

我也尝试设置C语言环境但没有改变。

有什么建议吗?谢谢。

2 个答案:

答案 0 :(得分:0)

我们需要%b并且应该更改订单

Ual_df$Date <- as.Date(Ual_df$Date, "%d-%b-%y")
Ual_df$Date
#[1] "2017-05-19" "2017-05-18" "2017-05-17"

答案 1 :(得分:0)

lubridate包最适合处理日期。如果您的Ual_df$Date列是一个因素,则以下内容甚至可以使用:

library(lubridate)
Ual_df$Date = dmy(Ual_df$Date)