From: Daniel Drake <silophophe@gmail.com>
To: "emacs-orgmode@gnu.org" <emacs-orgmode@gnu.org>
Subject: [0][babel][R] Undesired conversion of integers to floats in R code block output
Date: Thu, 16 Feb 2012 11:07:02 -0800 [thread overview]
Message-ID: <4F3D53D6.40407@gmail.com> (raw)
Hi All,
I'm using R in org-mode/babel to analyze data from a psychological
study. The subjects in this study are identified by nine digit integers
(e.g., 987654321) that I treat as strings (or factors) in my R data
frames.
Tables output by an R code block that contain these subject IDs are
not formatted properly: the subject IDs seem to be treated as numbers
and a decimal point and a trailing zero are appended. For example,
what should be
| subj.id |
|-----------|
| 987654321 |
becomes
| subj.id |
| 987654321.0 |
(I've included real, self-contained code below.)
When I write the data frames directly to a file from within the R code
block (using a write.table function call that mimics the one in
ob-R.el), the integer IDs are preserved; but when code from ob-R.el
writes them out, the values get reformated as floats.
I've noticed that eight digit integers are not modified in the same
way, which makes me wonder if there is a 'digits' threshold I could
modify to prevent this from happening.
I've pretty much ruled out the possibility that this transformation
occurs in R; however I'm not proficient enough in elisp to follow the
operations that happen after the data frame is written to a file in
the org-babel-R-write-object-command.
Any pointers to help me figure this out would be very appreciated!
(I've seen this thread:
http://comments.gmane.org/gmane.emacs.orgmode/31373, but do not know
if the conversion to calc has been made already or if it is the source
of the problem.)
Thanks,
Dan
I'm running:
- Arch Linux (32 bit)
- GNU Emacs 23.4.1
- Org-mode version release_7.8.03-351-g47eb3
- R version 2.14.1 (2011-12-22)
* Test
** table as generated by org-mode/babel
#+name: make
#+begin_src R :results value :colnames yes
temp <- data.frame('A'=c('987654321'),'B'=c('98765432'))
## -- this call mimics the one in ob-R.el
write.table(temp,file='test_r.tsv',sep='\t',na='nil',row.names=FALSE,col.names=TRUE,quote=FALSE)
temp
#+end_src
#+RESULTS: make
| A | B |
|-------------+----------|
| 987654321.0 | 98765432 |
** table as generated by R directly
#+name: read
#+begin_src sh :results output
cat test_r.tsv
#+end_src
#+RESULTS: read
: A B
: 987654321 98765432
next reply other threads:[~2012-02-16 19:09 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-02-16 19:07 Daniel Drake [this message]
2012-02-18 16:23 ` [0][babel][R] Undesired conversion of integers to floats in R code block output Eric Schulte
2012-02-19 7:02 ` Daniel Drake
2012-02-19 16:48 ` Eric Schulte
2012-02-19 17:40 ` Daniel Drake
2012-02-19 18:28 ` Daniel Drake
2012-02-19 19:27 ` Daniel Drake
2012-02-19 20:46 ` Eric Schulte
2012-02-19 21:19 ` Daniel Drake
2012-02-19 21:35 ` Achim Gratz
2012-02-20 17:36 ` Achim Gratz
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4F3D53D6.40407@gmail.com \
--to=silophophe@gmail.com \
--cc=emacs-orgmode@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.