On 12-11-20 4:35 PM, Prof Brian Ripley wrote:
On 20/11/2012 19:46, Duncan Murdoch wrote:
On 20/11/2012 2:30 PM, Brian Feeny wrote:
I am new to R, so I am sure I am making a simple mistake. I am
including complete information in hopes
someone can help me.
Basically my data in R looks good, I write it to a file, and every
value is off by 1.
Here is my flow:
str(prediction)
Factor w/ 10 levels "0","1","2","3",..: 3 1 10 10 4 8 1 4 1 4 ...
- attr(*, "names")= chr [1:28000] "1" "2" "3" "4" ...
You have a factor, not numerical data. Apparently write() is writing
out the factor values (index into the levels) rather than their string
representation. (I've never used write(). Normally would use cat() or
write.csv() or something related to write data
But as the help page says
‘write’ is a wrapper for ‘cat’, which gives further details on the
format used.
and cat() does treat a factor as an integer vector:
Currently only atomic vectors and names are handled, together with
‘NULL’ and other zero-length objects (which produce no output).
Character strings are output ‘as is’ (unlike ‘print.default’ which
escapes non-printable characters and backslash - use
‘encodeString’ if you want to output encoded strings using ‘cat’).
Other types of R object should be converted (e.g. by
‘as.character’ or ‘format’) before being passed to ‘cat’.
to a file for reading outside of R. ) write.csv() will write out the
strings, by default in quotes, but there are lots of arguments
to control the formatting.
Yes, I didn't claim otherwise.
Duncan Murdoch
______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.