[R] Mystery Error in midnightStandard
Yohan Chalabi
chalabi at phys.ethz.ch
Wed Jan 28 10:57:21 CET 2009
>>>> "TB" == Ted Byers <r.ted.byers at gmail.com>
>>>> on Tue, 27 Jan 2009 16:00:27 -0500
TB> I wasn't even aware I was using midnightStandard. You won't
TB> find it in my
TB> script.
TB>
TB> Here is the relevant loop:
TB>
TB> date1 = timeDate(charvec = Sys.Date(), format = %Y-%m-%d)
TB> date1
TB> dow = 3;
TB> for (i in 1:length(V4) ) {
TB> x = read.csv(as.character(V4[[i]]), header = FALSE,
TB> na.strings=);
TB> y = x[,1];
TB> year = V2[[i]];
TB> week = V3[[i]];
TB> dtstr = sprintf(%i-%i-%i,year,week,dow);
TB> date2 = timeDate(dtstr, format = %Y-%U-%w);
TB> resultsdataframe[[i]] <- difftimeDate(date1,date2,units =
TB> weeks);
TB> fp = fitdistr(y,exponential);
TB> print(c(V1[[i]],V2[[i]],V3[[i]],fp,fp));
TB> print(c(year,week,date2,resultsdataframe[[i]]));
TB> resultsdataframe[[i]] <- fp;
TB> resultsdataframe[[i]] <- fp;
TB> }
TB>
TB> It fails with a little more than 100 records left in V4.
TB>
TB> The full error message is:
TB>
TB> Error in midnightStandard(charvec, format) :
TB> 'charvec' has non-NA entries of different number of characters
timeDate() uses the midnight standard. The function 'midnightStandard'
assumes that all entries in 'charvec' have the same 'format'. Can you
please check if this is the case?
This is all I can say from the information you provided. Please give us
a reproducible example.
We can continue this discussion off-list.
regards,
Yohan
TB>
TB> Until it fails, date2 and resultsdataframe[[i]] get correct
TB> values.
TB>
TB> str() produces no surprises:
TB>
TB> > str(resultsdataframe);
TB> 'data.frame': 303 obs. of 6 variables:
TB> $ mid : int 171 206 206 206 206 206 206 206 206 218 ...
TB> $ year : int 2008 2008 2008 2008 2008 2008 2008 2008 2008
TB> 2008 ...
TB> $ week : int 16 17 18 19 21 26 31 35 51 40 ...
TB> $ dt : num 39.9 38.9 37.9 36.9 34.9 ...
TB> $ estimate: num Inf 0.25 Inf 0.0408 0.2 ...
TB> $ sd : num Inf 0.1768 Inf 0.0289 0.1414 ...
TB>
TB> I would assume the error is related to my new code that
TB> manipulates dates,
TB> as it doesn't occur in the earlier version that did not
TB> manipulate dates
TB> (the relevant work being done, albeit very slowly, within
TB> the DB).
TB>
TB> FTR: The year and week values are generated by MySQL using
TB> the YEAR and WEEK
TB> functions applied to timestamps. I do not know if it is
TB> relevant, but the
TB> week value, at the point of failure, is 0 (a value that does
TB> not occur
TB> earlier in the dataset, but several times subsequently),
TB> and I do not see
TB> how a value of 0 for the week (legitimate in posix date
TB> formats) could
TB> produce the error message I get.
TB>
TB> Any thoughts on what is really wrong, and how to fix it?
TB>
TB> Thanks
TB>
TB> Ted
--
PhD student
Swiss Federal Institute of Technology
Zurich
www.ethz.ch
More information about the R-help
mailing list