Преобразование даты в Year.decimal в R У меня есть столбец ts, который экономит годы в десятичном формате, т.е. 1988.0 1988.25 1988.5 1988.75 и т.д. Мне нужно экспортировать его в CSV файл с датой в формате "DD-MM-YYYY". Как это сделать? Ответ 1 В пакете lubridate есть функция date_decimal, которую вы можете использовать для этого. x <- c(1988.0, 1988.25, 1988.5, 1988.75) library(lubridate) (f <- format(date_decimal(x), "%d-%m-%Y")) # [1] "01-01-1988" "01-04-1988" "02-07-1988" "01-10-1988" Затем вы можете записать его в csv с помощью write.csv(f, "afilename.csv") ## or write.table() Вы, вероятно, захотите сначала проверить выход и скорректировать некоторые аргументы в любом формате. Ответ 2 Чтобы справиться с этими годами, > date_string <- '1988.99' > date_num <- as.numeric(date_string) > year <- floor(date_num) > year_beginning <- as.POSIXct(paste0(year, '-01-01')) > year_end <- as.POSIXct(paste0(year+1, '-01-01')) > date <- year_beginning + (date_num %% 1) * (year_end - year_beginning) > format(date, format='%Y-%m-%d') [1] "1988-12-28" Для написания csv попробуйте help(write.table)
Ответ 1 В пакете lubridate есть функция date_decimal, которую вы можете использовать для этого. x <- c(1988.0, 1988.25, 1988.5, 1988.75) library(lubridate) (f <- format(date_decimal(x), "%d-%m-%Y")) # [1] "01-01-1988" "01-04-1988" "02-07-1988" "01-10-1988" Затем вы можете записать его в csv с помощью write.csv(f, "afilename.csv") ## or write.table() Вы, вероятно, захотите сначала проверить выход и скорректировать некоторые аргументы в любом формате.
Ответ 2 Чтобы справиться с этими годами, > date_string <- '1988.99' > date_num <- as.numeric(date_string) > year <- floor(date_num) > year_beginning <- as.POSIXct(paste0(year, '-01-01')) > year_end <- as.POSIXct(paste0(year+1, '-01-01')) > date <- year_beginning + (date_num %% 1) * (year_end - year_beginning) > format(date, format='%Y-%m-%d') [1] "1988-12-28" Для написания csv попробуйте help(write.table)