这是我的数据帧(带列名(的第一行:
site, date, value
TEES, 20000314, 315
正如您所看到的,日期没有分隔符(-或/(,所以我不能使用as.Date
。因此,我需要这样的东西:
TEES, 2000-03-14, 315
我该怎么做?可能与sub
有关
这会起作用吗:
as.Date(gsub('(\d{4})(\d{2})(\d{2})','\1-\2-\3',df$date))
[1] "2000-03-14"
数据:
df
site date value
1 TEES 20000314 315
您可以使用lubridate
包中的ymd
函数。这将自动添加"-"以分离YYYY-MM-DD并将其转换为CCD_ 5。
library(lubridate)
ymd(df$date)
# "2000-03-14"
您可以使用as.Date
,只需指定tryFormats
参数:
as.Date("20000314", tryFormats = c("%Y%m%d"))
[1] "2000-03-14"
默认情况是尝试以下格式:c("%Y-%m-%d", "%Y/%m/%d")
,它们与您当前的结构不匹配,因此您必须告诉它如何读取您的结构。
我们可以从anytime
使用anydate
library(anytime)
anydate("20000314")
#[1] "2000-03-14"