【问题标题】:Factor to date conversion produces NA [closed]因子到日期转换产生 NA [关闭]
【发布时间】:2018-06-05 15:01:42
【问题描述】:

我正在处理一个 kaggle 数据集,这里有一些示例代码:

之前:

Date  Open  High   Low Close   Volume Adj.Close
1 6/29/2010 19.00 25.00 17.54 23.89 18766300     23.89
2 6/30/2010 25.79 30.42 23.30 23.83 17187100     23.83
3  7/1/2010 25.00 25.92 20.27 21.96  8218800     21.96
4  7/2/2010 23.00 23.10 18.71 19.20  5139800     19.20
5  7/6/2010 20.00 20.00 15.83 16.11  6866900     16.11
6  7/7/2010 16.40 16.63 14.98 15.80  6921700     15.80

现在这里是从左到右的每一列的类(因子、数字、数字、数字、数字、整数、数字)

我应用这行代码将我的日期(因子)列更改为日期类型

data$Date <- as.Date(data$Date, format = "%d/%m/%Y")

现在,当我这样做时,我再次运行“sapply(data, class)”并运行“is.factor(data$Date)”进行检查,它成功了! 但问题来了:

Date  Open  High   Low Close   Volume Adj.Close
1       <NA> 19.00 25.00 17.54 23.89 18766300     23.89
2       <NA> 25.79 30.42 23.30 23.83 17187100     23.83
3 2010-01-07 25.00 25.92 20.27 21.96  8218800     21.96
4 2010-02-07 23.00 23.10 18.71 19.20  5139800     19.20
5 2010-06-07 20.00 20.00 15.83 16.11  6866900     16.11
6 2010-07-07 16.40 16.63 14.98 15.80  6921700     15.80

我的数据集是 1692x7,我做了一个 NA 计数,现在我得到了 1021 个 NA(60% 的数据)

有人知道没有所有 NA 的情况下将因子转换为日期类型的更好方法吗?

【问题讨论】:

  • 我不明白这个问题是如何被 r-comm 视为离题的,或者当数据集的头部视图显示两次时,这个问题无法重现。

标签: r type-conversion data-conversion


【解决方案1】:

您需要使用as.Date(df$Date, format = "%m/%d/%Y") 而不是as.Date(data$Date, format = "%d/%m/%Y")

as.Date(df$Date, format = "%m/%d/%Y")
# [1] "2010-06-29" "2010-06-30" "2010-07-01" "2010-07-02" "2010-07-06"
# [6] "2010-07-07"

这是month/day/year 不是day/month/year

【讨论】:

  • 谢谢!代码有效,我真的很想保持 dd/mm/yyyy 格式,但我会管理的!
猜你喜欢
  • 1970-01-01
  • 2015-10-19
  • 2022-07-22
  • 2020-08-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多