如何获得模棱两可的温度数据的正确日期格式?

时间:2018-09-16 14:56:29

标签: r date data-manipulation

我使用了rasternetCDF包来导入历史温度数据。但是,日期列的日期格式很奇怪,R抱怨不是标准日期格式。我使用lubricater base来进行日期格式强制转换,但是仍然不能解决这个问题。这是我的部分数据的样子:

> head(dat)
         date tmax  tmin
1 X1980.01.01 1.91 -0.04
2 X1980.01.02 0.77 -1.00
3 X1980.01.03 0.01 -4.37
4 X1980.01.04 3.08 -3.13
5 X1980.01.05 4.69  2.57
6 X1980.01.06 5.08  2.86


> class(dat$date)
[1] "character"

我的dat$date列变成了character而不是Date。我尝试gsub来摆脱X字符,但我没有正确。我也尝试过as.Dateas_datetime,但仍然没有正确的日期格式。是否有任何快速解决方案可以将上述日期格式转换为标准格式。     头(napa $ date)

任何想法或任何快速解决方案?

1 个答案:

答案 0 :(得分:2)

在评论中回答了问题。这是不同的方法。

d <- c("X1980.01.01", "X1980.01.02")

最简洁的

as.Date(d, "X%Y.%m.%d")

步骤:

e <- gsub("X", "", d)
f <- as.Date(e, "%Y.%m.%d")
f     
#[1] "1980-01-01" "1980-01-02"

请注意

class(f)
# "Date"

变化形式:

e <- gsub("X", "", d)
f <- gsub("\\.", "-", e)
as.Date(f)
#[1] "1980-01-01" "1980-01-02"

或与ymd包中的lubridate一起

e <- gsub("X", "", d)
lubridate::ymd(e)
#[1] "1980-01-01" "1980-01-02"