Am 21.05.2014 11:49, schrieb Riccardo (Jack) Lucchetti: > On Wed, 21 May 2014, Sven Schreiber wrote: > >> Next I would like to convert the workfile from 7-days-daily to >> 5-days-daily, i.e. remove the empty (=missings) weekends obs, but this >> doesn't seem to be easy to do. (Note that removing all missing obs is >> not equivalent, because that also eliminates other holidays, which is >> another topic. Also I know I could use 'join' together with the source >> csv file to do that, but I think it should be easier than that, no?) > > This should do what you want: not the most elegant approach, but IMO > quite clear and general. The only thing I don't like very much is the > necessity to go through a temporary file, which I find quite ugly. > Allin, we talked a bit about the possibility of having a "forever" > option to the smpl command, which would effectively eliminate certain > rows from a dataset (so that operations like "keep" and "drop" in Stata) > become quite easy. What do you think?
I'm not Allin, but also related to the issue of the other holidays in the data, this would be helpful I think. I would guess that people working with daily data (which I rarely do) treat the time series as being equally spaced over time (=as a standard time series) even though it is not, strictly speaking, due to the weekends and holidays. I mean that's what gretl also does with its 5-day-daily and 6-day-daily formats. But currently in gretl I'm always losing the time-series property of my workfile when I remove the missing holidays, and so I could not use the built-in time series tools. My workaround has been to save this as a special time series workfile with periodicity 1, so no date information anymore. But this feels like a cludge (for example no daily dummies, except if I created them beforehand). > > /* > trash weekends > */ > > # first, construct a "weekend" dummy series > > scalar y1 = $obsmajor[1] > scalar m1 = $obsminor[1] > scalar d1 = $obsmicro[1] > scalar wd1 = weekday(y1, m1, d1) > series wd = time + wd1 - 1 > series we = (wd%7)==6 || (wd%7)==0 Thanks Jack; I tried this more compactly with: <hansl> genr dummy # BTW, need a new syntax for this IMHO series we = dummy_6 || dummy_7 </hansl> but apparently the daily dummies are allocated "randomly", i.e. dummy_1 starts with whatever is the first obs in the workfile (or sample?), not Monday or Sunday. Could this be changed perhaps? thanks, sven