0

当我使用 R 读取数据文件时,日期变量是一个因素。

例如,让 epc 保存数据集。然后如果我们查看第一个日期的结构,我们会得到

str(epc$Date[1]) 因子 w/ 1 级别 "16/12/2006": 1

如果你把它转换成一个字符,as.character(epc$Date[1]),你会得到完全相同的东西:“16/12/2006”

无论我尝试了什么,我都无法将这种类型的对象转换为有效日期。

如果日期是“16/12/2006”(我假设是 2006 年 12 月 16 日),那么 as.Date(epc_full$Date[1]) 给出“0016-12-20”——全年丢失了。

我尝试了很多不同的事情,例如,首先将日期转换为字符,尝试不同版本的 as.Date() 等,但是当输入为“16/12/2006”时,我一直得到完全相同的结果

这里有什么诀窍?

4

2 回答 2

0

因此,首先,由于某种原因,这被作为一个标记为“2006 年 12 月 16 日”的因素读入。您正在将其转换为角色,所以我将从那里开始。

有很多方法可以做到这一点,但我认为最简单的是使用 lubridate 包。

#Install package
install.packages("lubridate")
library(lubridate)

yourTextDate <- "16/12/2006"

yourDate <- dmy(yourTextDate)

yourDate
于 2015-08-06T20:50:44.167 回答
0

如果您严格想要一个Date课程,那么:

as.Date(s, format='%d/%m/%Y')
## [1] "2006-12-16"
class(.Last.value)
## [1] "Date"

因此,您可以使用以下方式转换整个日期列:

as.Date(epc$Date, format='%d/%m/%Y')

无论是角色还是因素,这都应该有效。

lubridate效果也很好,但如果你坚持使用基础R,这也很有效。

于 2015-08-06T20:58:39.523 回答