Pregunta

My data looks like this guy below.

> head(data)
                  open   high    low  close
2013-06-20 09:31:00 275.50 276.00 275.08 275.65
2013-06-20 09:32:00 275.61 276.88 275.61 276.67
2013-06-20 09:33:00 276.67 276.72 275.95 276.62
2013-06-20 09:34:00 276.48 277.43 276.27 277.00
2013-06-20 09:35:00 277.00 278.00 277.00 278.00
2013-06-20 09:36:00 277.83 277.97 276.58 277.29

I get the number of unique days by typing in this:

length(levels(as.factor(floor(as.numeric(julian(index(data)))))))

Is there a better way to do this? I wish there was a numdays.zoo() function or something.

¿Fue útil?

Solución

I'd use xts::ndays

library(xts)
ndays(data)

But if you don't want to load another package, you could just do this

length(unique(as.Date(time(data))))

Otros consejos

You can transform you index to day format and use table:

table(format(index(data),'%y-%m-%d'))
13-06-20 
       6

Then number of days is for example :

  length(names(table(format(index(data),'%y-%m-%d'))))
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top