emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* was this intentional with the default header ":results value"
@ 2012-07-13 14:24 Eric Luo
  2012-07-14 16:44 ` Thomas S. Dye
  0 siblings, 1 reply; 6+ messages in thread
From: Eric Luo @ 2012-07-13 14:24 UTC (permalink / raw)
  To: emacs-orgmode


Hi, 
Why in the following code block, c1 was printed as scientific notation
rather then characters.
,----
| 
| #+BEGIN_SRC R :results value
|   df <- data.frame(c1="123456789123456789",c2=2)
| #+END_SRC
| 
| #+RESULTS:
| | 1.2345678912345678e+17 | 2 |
`----
But if the header :results output, the result was expected.
,----
| 
| #+BEGIN_SRC R :results output 
|   df <- data.frame(c1="123456789123456789",c2=2)
|   df
| #+END_SRC
| 
| #+RESULTS:
| :                   c1 c2
| : 1 123456789123456789  2
`----

Thanks

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: was this intentional with the default header ":results value"
  2012-07-13 14:24 was this intentional with the default header ":results value" Eric Luo
@ 2012-07-14 16:44 ` Thomas S. Dye
  2012-07-15  1:00   ` Eric Luo
  0 siblings, 1 reply; 6+ messages in thread
From: Thomas S. Dye @ 2012-07-14 16:44 UTC (permalink / raw)
  To: Eric Luo; +Cc: emacs-orgmode

Aloha Eric,

Eric Luo <eric.wenbl@gmail.com> writes:

> Hi, 
> Why in the following code block, c1 was printed as scientific notation
> rather then characters.
> ,----
> | 
> | #+BEGIN_SRC R :results value
> |   df <- data.frame(c1="123456789123456789",c2=2)
> | #+END_SRC
> | 
> | #+RESULTS:
> | | 1.2345678912345678e+17 | 2 |
> `----

With :results value the results are passed from the source language into
emacs-lisp and then displayed in the buffer.  So, the representation of
things like very large numbers depends on how that was done in
emacs-lisp, independent of the source language conventions.  In this
case, I suspect the number was written with a formatting string and ‘%g’
which uses scientific notation if that is a shorter representation.


> But if the header :results output, the result was expected.
> ,----
> | 
> | #+BEGIN_SRC R :results output 
> |   df <- data.frame(c1="123456789123456789",c2=2)
> |   df
> | #+END_SRC
> | 
> | #+RESULTS:
> | :                   c1 c2
> | : 1 123456789123456789  2
> `----
>

With :results output the results aren't translated into emacs-lisp.
Instead, the output from the source language is collected and displayed
in the buffer.  Thus, the output conventions of the source language are
respected. 

hth,
Tom

-- 
Thomas S. Dye
http://www.tsdye.com

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: was this intentional with the default header ":results value"
  2012-07-14 16:44 ` Thomas S. Dye
@ 2012-07-15  1:00   ` Eric Luo
  2012-07-15  3:33     ` Thomas S. Dye
  0 siblings, 1 reply; 6+ messages in thread
From: Eric Luo @ 2012-07-15  1:00 UTC (permalink / raw)
  To: emacs-orgmode

tsd@tsdye.com (Thomas S. Dye) writes:

Thanks, it's clear to me with the difference between "value" and
"output" now.

whether there is a way to tell emacs-lisp that "123456789123456789" is a
string rather than a number.

emacs-lisp handles the output as expected if the c1 has any character
other than numbers as the following.
,----
| #+BEGIN_SRC R
|   df <- data.frame(c1="c123456789123456789",c2=2)
|   df$c1 <- as.vector(df$c1)
|   df
| #+END_SRC
| 
| #+RESULTS:
| | c123456789123456789 | 2 |
| 
`----

> Aloha Eric,
>
> Eric Luo <eric.wenbl@gmail.com> writes:
>
>> Hi, 
>> Why in the following code block, c1 was printed as scientific notation
>> rather then characters.
>> ,----
>> | 
>> | #+BEGIN_SRC R :results value
>> |   df <- data.frame(c1="123456789123456789",c2=2)
>> | #+END_SRC
>> | 
>> | #+RESULTS:
>> | | 1.2345678912345678e+17 | 2 |
>> `----
>
> With :results value the results are passed from the source language into
> emacs-lisp and then displayed in the buffer.  So, the representation of
> things like very large numbers depends on how that was done in
> emacs-lisp, independent of the source language conventions.  In this
> case, I suspect the number was written with a formatting string and ‘%g’
> which uses scientific notation if that is a shorter representation.
>
>
>> But if the header :results output, the result was expected.
>> ,----
>> | 
>> | #+BEGIN_SRC R :results output 
>> |   df <- data.frame(c1="123456789123456789",c2=2)
>> |   df
>> | #+END_SRC
>> | 
>> | #+RESULTS:
>> | :                   c1 c2
>> | : 1 123456789123456789  2
>> `----
>>
>
> With :results output the results aren't translated into emacs-lisp.
> Instead, the output from the source language is collected and displayed
> in the buffer.  Thus, the output conventions of the source language are
> respected. 
>
> hth,

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: was this intentional with the default header ":results value"
  2012-07-15  1:00   ` Eric Luo
@ 2012-07-15  3:33     ` Thomas S. Dye
  2012-07-15  3:54       ` Thomas S. Dye
  0 siblings, 1 reply; 6+ messages in thread
From: Thomas S. Dye @ 2012-07-15  3:33 UTC (permalink / raw)
  To: Eric Luo; +Cc: emacs-orgmode

Hi Eric,

I don't know any way to do this in Org-mode.  Here is a workaround in R
that might do what you want.

#+name: luo
#+BEGIN_SRC R :results output org
  library(ascii)
  df <- data.frame(c1="123456789123456789000",c2=2)
  df$c1 <- as.vector(df$c1)
  print(ascii(df),type="org")
#+END_SRC

#+RESULTS: luo
#+BEGIN_ORG
|   | c1                    | c2   |
|---+-----------------------+------|
| 1 | 123456789123456789000 | 2.00 |
#+END_ORG

All the best,
Tom

Eric Luo <eric.wenbl@gmail.com> writes:

> tsd@tsdye.com (Thomas S. Dye) writes:
>
> Thanks, it's clear to me with the difference between "value" and
> "output" now.
>
> whether there is a way to tell emacs-lisp that "123456789123456789" is a
> string rather than a number.
>
> emacs-lisp handles the output as expected if the c1 has any character
> other than numbers as the following.
> ,----
> | #+BEGIN_SRC R
> |   df <- data.frame(c1="c123456789123456789",c2=2)
> |   df$c1 <- as.vector(df$c1)
> |   df
> | #+END_SRC
> | 
> | #+RESULTS:
> | | c123456789123456789 | 2 |
> | 
> `----
>
>> Aloha Eric,
>>
>> Eric Luo <eric.wenbl@gmail.com> writes:
>>
>>> Hi, 
>>> Why in the following code block, c1 was printed as scientific notation
>>> rather then characters.
>>> ,----
>>> | 
>>> | #+BEGIN_SRC R :results value
>>> |   df <- data.frame(c1="123456789123456789",c2=2)
>>> | #+END_SRC
>>> | 
>>> | #+RESULTS:
>>> | | 1.2345678912345678e+17 | 2 |
>>> `----
>>
>> With :results value the results are passed from the source language into
>> emacs-lisp and then displayed in the buffer.  So, the representation of
>> things like very large numbers depends on how that was done in
>> emacs-lisp, independent of the source language conventions.  In this
>> case, I suspect the number was written with a formatting string and ‘%g’
>> which uses scientific notation if that is a shorter representation.
>>
>>
>>> But if the header :results output, the result was expected.
>>> ,----
>>> | 
>>> | #+BEGIN_SRC R :results output 
>>> |   df <- data.frame(c1="123456789123456789",c2=2)
>>> |   df
>>> | #+END_SRC
>>> | 
>>> | #+RESULTS:
>>> | :                   c1 c2
>>> | : 1 123456789123456789  2
>>> `----
>>>
>>
>> With :results output the results aren't translated into emacs-lisp.
>> Instead, the output from the source language is collected and displayed
>> in the buffer.  Thus, the output conventions of the source language are
>> respected. 
>>
>> hth,
>
>
>

-- 
Thomas S. Dye
http://www.tsdye.com

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: was this intentional with the default header ":results value"
  2012-07-15  3:33     ` Thomas S. Dye
@ 2012-07-15  3:54       ` Thomas S. Dye
  2012-07-15  9:18         ` Eric Luo
  0 siblings, 1 reply; 6+ messages in thread
From: Thomas S. Dye @ 2012-07-15  3:54 UTC (permalink / raw)
  To: Eric Luo; +Cc: emacs-orgmode

Or, fiddling a bit more.

#+name: luo
#+BEGIN_SRC R :results output raw
  library(ascii)
  df <- data.frame(c1="123456789123456789000",c2=2)
  df$c1 <- as.vector(df$c1)
  print(ascii(df,digits=c(0,0),include.rownames=F),type="org")
#+END_SRC

#+RESULTS: luo
|                    c1 | c2 |
|-----------------------+----|
| 123456789123456789000 |  2 |


tsd@tsdye.com (Thomas S. Dye) writes:

> Hi Eric,
>
> I don't know any way to do this in Org-mode.  Here is a workaround in R
> that might do what you want.
>
> #+name: luo
> #+BEGIN_SRC R :results output org
>   library(ascii)
>   df <- data.frame(c1="123456789123456789000",c2=2)
>   df$c1 <- as.vector(df$c1)
>   print(ascii(df),type="org")
> #+END_SRC
>
> #+RESULTS: luo
> #+BEGIN_ORG
> |   | c1                    | c2   |
> |---+-----------------------+------|
> | 1 | 123456789123456789000 | 2.00 |
> #+END_ORG
>
> All the best,
> Tom
>
> Eric Luo <eric.wenbl@gmail.com> writes:
>
>> tsd@tsdye.com (Thomas S. Dye) writes:
>>
>> Thanks, it's clear to me with the difference between "value" and
>> "output" now.
>>
>> whether there is a way to tell emacs-lisp that "123456789123456789" is a
>> string rather than a number.
>>
>> emacs-lisp handles the output as expected if the c1 has any character
>> other than numbers as the following.
>> ,----
>> | #+BEGIN_SRC R
>> |   df <- data.frame(c1="c123456789123456789",c2=2)
>> |   df$c1 <- as.vector(df$c1)
>> |   df
>> | #+END_SRC
>> | 
>> | #+RESULTS:
>> | | c123456789123456789 | 2 |
>> | 
>> `----
>>
>>> Aloha Eric,
>>>
>>> Eric Luo <eric.wenbl@gmail.com> writes:
>>>
>>>> Hi, 
>>>> Why in the following code block, c1 was printed as scientific notation
>>>> rather then characters.
>>>> ,----
>>>> | 
>>>> | #+BEGIN_SRC R :results value
>>>> |   df <- data.frame(c1="123456789123456789",c2=2)
>>>> | #+END_SRC
>>>> | 
>>>> | #+RESULTS:
>>>> | | 1.2345678912345678e+17 | 2 |
>>>> `----
>>>
>>> With :results value the results are passed from the source language into
>>> emacs-lisp and then displayed in the buffer.  So, the representation of
>>> things like very large numbers depends on how that was done in
>>> emacs-lisp, independent of the source language conventions.  In this
>>> case, I suspect the number was written with a formatting string and ‘%g’
>>> which uses scientific notation if that is a shorter representation.
>>>
>>>
>>>> But if the header :results output, the result was expected.
>>>> ,----
>>>> | 
>>>> | #+BEGIN_SRC R :results output 
>>>> |   df <- data.frame(c1="123456789123456789",c2=2)
>>>> |   df
>>>> | #+END_SRC
>>>> | 
>>>> | #+RESULTS:
>>>> | :                   c1 c2
>>>> | : 1 123456789123456789  2
>>>> `----
>>>>
>>>
>>> With :results output the results aren't translated into emacs-lisp.
>>> Instead, the output from the source language is collected and displayed
>>> in the buffer.  Thus, the output conventions of the source language are
>>> respected. 
>>>
>>> hth,
>>
>>
>>

-- 
Thomas S. Dye
http://www.tsdye.com

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: was this intentional with the default header ":results value"
  2012-07-15  3:54       ` Thomas S. Dye
@ 2012-07-15  9:18         ` Eric Luo
  0 siblings, 0 replies; 6+ messages in thread
From: Eric Luo @ 2012-07-15  9:18 UTC (permalink / raw)
  To: emacs-orgmode

tsd@tsdye.com (Thomas S. Dye) writes:

> Or, fiddling a bit more.
>
> #+name: luo
> #+BEGIN_SRC R :results output raw
>   library(ascii)
>   df <- data.frame(c1="123456789123456789000",c2=2)
>   df$c1 <- as.vector(df$c1)
>   print(ascii(df,digits=c(0,0),include.rownames=F),type="org")
> #+END_SRC
>
> #+RESULTS: luo
> |                    c1 | c2 |
> |-----------------------+----|
> | 123456789123456789000 |  2 |
>

Thanks for your help in time, it works like in a charm.

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2012-07-15  9:19 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-07-13 14:24 was this intentional with the default header ":results value" Eric Luo
2012-07-14 16:44 ` Thomas S. Dye
2012-07-15  1:00   ` Eric Luo
2012-07-15  3:33     ` Thomas S. Dye
2012-07-15  3:54       ` Thomas S. Dye
2012-07-15  9:18         ` Eric Luo

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).