因子到目前为止转换产生NA [关闭]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了因子到目前为止转换产生NA [关闭]相关的知识,希望对你有一定的参考价值。

我正在研究一个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(数据,类)”和“is.factor(数据$ 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?

答案

你需要使用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

以上是关于因子到目前为止转换产生NA [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

安卓。通过从片段中的按钮调用片段中的方法来关闭片段?

我如何自定义制表符到空间的转换因子?

将多个分类变量转换为R中的因子

将带有对象的数组转换为数组[关闭]

如何将活动转换为片段以在抽屉中使用

活动/片段转换是不是与棒棒糖之前的设备兼容?