создание 2 ди git месяц и день столбцов в R - PullRequest
1 голос
/ 05 апреля 2020

Я очень плохо знаком с R, так что это может показаться простым. Но у меня есть фрейм данных с исходным столбцом даты, значения которого выглядят следующим образом: 4-02-91, 5-29-93 (т. Е. Mdy). Я пытаюсь разделить этот столбец на 3, где месяцы, дни и годы разделены. Затем мне нужно снова объединить их в этот формат 19910402, 19930529 - он мне нужен таким образом, чтобы сравнить его с другим набором данных с похожими датами.

Вот что я пытался сделать:

# Make DATE an actual date column    
dataframe$DATE <- as.Date(used$DATE, format="%m-%d-%Y")
# This changes the original date column into something that looks like this: 1991-04-02, 1993-05-29

# Separate DATE into multiple columns  
dataframe$year <- year(dataframe$DATE)
dataframe$month <- month(dataframe$DATE)
dataframe$day <- day(dataframe$DATE)

# Combine dates again to get string
dataframe$raster_date<-paste(dataframe$year, dataframe$month, dataframe$day, sep = "")

Последний шаг выглядит великолепно, за исключением случаев, когда месяцы или дни являются однозначными. Он выходит как 199142 и 1993529 вместо 19910402 и 19930529. Как вставить нули, если значения месяца и дня равны 1 di git?

1 Ответ

0 голосов
/ 05 апреля 2020

Здесь мы можем использовать sprintf вместо paste, так как year, month, day из lubridate извлекает их как значения числительных c, а класс числительных c отбрасывает 0 дополняется префиксом. Мы добавляем префикс с 0 в sprintf

sprintf("%04d%02d%02d", dataframe$year, dataframe$month, dataframe$day)
...