Hi Michael, I posted something on this topic to R-devel several weeks ago, but never got a response. My ultimate conclusion is that sprintf() isn't super consistent in how it handles coercion: sometimes it'll coerce real to integer without complaint, other times it won't. (My particular email had to do with the vectors longer than 1 and their positioning vis-a-vis the format string.) The safest thing is just to pass the right type. In this case, sprintf('%d', as.integer(NA_real_)) works.
Best, Evan On Fri, May 19, 2017 at 9:23 AM, Michael Chirico <michaelchiri...@gmail.com> wrote: > Consider > > #as.numeric for emphasis > sprintf('%d', as.numeric(1)) > # [1] "1" > > vs. > > sprintf('%d', NA_real_) > > > Error in sprintf("%d", NA_real_) : > > invalid format '%d'; use format %f, %e, %g or %a for numeric object > > > > I understand the error is correct, but if it works for other numeric input, > why doesn't R just coerce NA_real_ to NA_integer_? > > Michael Chirico > > [[alternative HTML version deleted]] > > ______________________________________________ > R-devel@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel > -- Evan Cortens, PhD Institutional Analyst - Office of Institutional Analysis Mount Royal University 403-440-6529 [[alternative HTML version deleted]] ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel