将日期(dd / mm / YYY)转换为从因子到数字

时间:2016-01-15 12:09:22

标签: r class

我正在尝试将下面的变量从542级别的因子转换为R将其识别为数字的日期。我是R的新手,无法按照其他主题解释。

非常感谢! 萨拉

screen shot of data

2 个答案:

答案 0 :(得分:0)

假设您在ISO8601 YYYYMMDD格式编号之后,这个怎么样?

dates <- c("18/08/2015","19/08/2015")
dateNumbers <- as.numeric(as.character(as.Date(dates, format = "%d/%m/%Y"), format="%Y%m%d"))
dateNumbers
[1] 20150818 20150819

答案 1 :(得分:-1)

您的屏幕截图看起来像一个矢量。所以试试这个:

lapply(some_vec, function(date) gsub('-', '', date) )

编辑: 您可能需要使用以下命令重新格式化日期:

some_vec <- as.Date(some_vec, format = '%Y-%m-%d')

之前。

EDIT2:

首先是代码:

some_vec <- rep(factor(as.Date('18/08/2015', format = '%d/%m/%Y')), 30)
some_vec <- as.Date(some_vec, format = '%Y-%m-%d')
res <- unlist(lapply(some_vec, function(date) { 
   gsub('-', '', date)
}))
res
[1] "20150818" "20150818" "20150818" "20150818" "20150818" "20150818" "20150818" "20150818" "20150818" "20150818" "20150818" "20150818" "20150818" "20150818"
[15] "20150818" "20150818" "20150818" "20150818" "20150818" "20150818" "20150818" "20150818" "20150818" "20150818" "20150818" "20150818" "20150818" "20150818"
[29] "20150818" "20150818"

我试图帮助蒙住眼睛。所以,请不要苛刻。我尝试的是重新格式化日期(如果有必要的话)。在我的系统R上显示已经在&#39; YYYY-MM-DD&#39;格式(在重新格式化之前)。

some_vec
[1] 2015-08-18 2015-08-18 2015-08-18 2015-08-18 2015-08-18 2015-08-18 ...
[29] 2015-08-18 2015-08-18
Levels: 2015-08-18

一旦数据具有这种格式,您就可以对列表进行讨论并杀死&#39; - &#39;迹象。