2014-11-17 9 views

risposta

9

Il pacchetto lubridate ha una funzione, date_decimal che è possibile utilizzare per questo.

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" 

Poi si può scrivere in un file CSV con

write.csv(f, "afilename.csv") ## or write.table() 

Probabilmente si vorrà controllare l'uscita prima e regolare alcuni degli argomenti a qualsiasi formato desiderato.

4

far fronte a tali anni di frazioni,

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

Per scrivere un file CSV, provare help(write.table)

+1

In realtà stavo provando a codificarlo in quel modo e continuavo a rimuginare. Sono nuovo di R. Grande comunità. Ordinato in un giorno !!! – monkeyshines