Sarei interessato a sapere se sarebbe più veloce per invertire la sequenza e il casting as.Date
:
# My function getDays
getDays_1 <- function(year) {
d1 <- as.Date(paste(year, '-01-01', sep = ''));
d2 <- as.Date(paste(year, '-12-31', sep = ''));
as.Date(d1:d2, origin = '1970-01-01');
};
# other getDays
getDays_2 <- function(year) {
seq(as.Date(paste(year, '-01-01', sep='')),
as.Date(paste(year, '-12-31', sep='')),
by = '+1 day');
};
test_getDays_1 <- function(n = 10000) {
for(i in 1:n) {
getDays_1(2000);
};
};
test_getDays_2 <- function(n = 10000) {
for(i in 1:n) {
getDays_2(2000);
};
};
system.time(test_getDays_1());
# user system elapsed
# 4.80 0.00 4.81
system.time(test_getDays_2());
# user system elapsed
# 4.52 0.00 4.53
I non lo so. . . sembra che il sequenziamento Date
oggetti è leggermente più veloce di convertire un vettore di interi a Date
s
Basta aggiungere un '-1' dopo il secondo' as.Date'. – James
Bello, non ci avevo pensato. Questo lo risolverà davvero. Vieni a pensarci, avrei potuto comunque usare il 20xx-12-31. –