更改为日期格式

时间:2013-11-20 16:01:11

标签: r

我有一些日期列的数据:

enter image description here

这里的格式是月 - 年。但是这个列是因子格式,我需要它作为日期。

> str(data$date)
 Factor w/ 211 levels "01-1994","01-1996",..: 88 157 125 137 139 106 11 204 45 173 ...

我试图以这种方式改变它,但结果是NA的一列。错误在哪里?

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

enter image description here

2 个答案:

答案 0 :(得分:3)

您可以考虑查看具有yearmon格式的“zoo”包:

## Some sample data
test <- data.frame(date = c("05-2010", "09-2007", "01-2013"))
str(test)
# 'data.frame': 3 obs. of  1 variable:
#  $ date: Factor w/ 3 levels "01-2013","05-2010",..: 2 3 1

转换为yearmon

library(zoo)
as.yearmon(test$date, format="%m-%Y")
# [1] "May 2010" "Sep 2007" "Jan 2013"

仅供参考:如果您需要常规日期格式,可以在as.yearmon中打包as.Date

as.Date(as.yearmon(test$date, format="%m-%Y"))
# [1] "2010-05-01" "2007-09-01" "2013-01-01"

答案 1 :(得分:1)

你没有约会。您有一个因子变量str()告诉您。

更一般地说,查看stringsAsFactors=FALSE,作为数据读取的选项(包括来自数据库)或全局选项。

对于手头的问题:结合

as.Date(paste0(as.character(date$date), "-01"), "%m-%Y-%d")

因为您还需要一天时间来创建有效日期。