Как я могу получить правильный формат даты для неоднозначных данных о температуре? - PullRequest
0 голосов
/ 16 сентября 2018

Я использовал пакеты raster и netCDF для импорта исторических данных о температуре.Но столбцы даты имеют странный формат даты, и R жалуются не на стандартный формат даты.Я использовал lubricate и r 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.Date и as_datetime, но все равно я не получил правильный формат даты.Есть ли быстрое решение для преобразования вышеуказанного формата даты в стандартный.голова (напа $ дата)

есть идеи или быстрое решение?

1 Ответ

0 голосов
/ 16 сентября 2018

На вопрос ответили в комментариях.Вот разные подходы вместе.

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"
...