Re: [O] cannot execute org-mode code from the front page tutorial.
Nick Dokos ndokos at gmail.com writes: tsd at tsdye.com (Thomas S. Dye) writes: Aloha Jenia, jenia.ivlev at gmail.com (jenia.ivlev) writes: Hello. I'm trying to go through the org-mode tutorial on its official page. [discussion showing that (if (listp value)...) generates a data.frame deleted] [delete patch turning a data.frame into a vector] And assuming this is correct, the worg page will need to be corrected too. No patch is needed. The point of the code in org-babel-R-assign-elisp is to create a data.frame when `value' is a list. The patch adding `unlist(res)' turns it into an ordinary vector. This will break almost all uses of :var in R scr blocks. I don't think this example could have worked for a long while - turning elisp lists into R data.frames has been a feature for a good while. Also, note the use of `sbe' vs `org-sbe' in the formula. #+TBLFM: @2$1='(sbe R-mean (x tbl-example-data())) Use `colMeans(x)' to fix the worg page. HTH, Chuck
Re: [O] cannot execute org-mode code from the front page tutorial.
Charles Berry ccbe...@ucsd.edu writes: Nick Dokos ndokos at gmail.com writes: tsd at tsdye.com (Thomas S. Dye) writes: Aloha Jenia, jenia.ivlev at gmail.com (jenia.ivlev) writes: Hello. I'm trying to go through the org-mode tutorial on its official page. [discussion showing that (if (listp value)...) generates a data.frame deleted] [delete patch turning a data.frame into a vector] And assuming this is correct, the worg page will need to be corrected too. No patch is needed. The point of the code in org-babel-R-assign-elisp is to create a data.frame when `value' is a list. The patch adding `unlist(res)' turns it into an ordinary vector. This will break almost all uses of :var in R scr blocks. I don't think this example could have worked for a long while - turning elisp lists into R data.frames has been a feature for a good while. Also, note the use of `sbe' vs `org-sbe' in the formula. #+TBLFM: @2$1='(sbe R-mean (x tbl-example-data())) Use `colMeans(x)' to fix the worg page. Also, it appears that babel no longer supports passing variables through the #+name: line. I don't use this syntax and can't remember now whether support for it was removed, or if it just withered away. At any rate, if I use the #+header: syntax then I can get the example working partially. It is possible then to get the OP's desired result with the #+call: line. Changing (sbe ...) to (org-sbe ...) in the table calculates the mean, but doesn't yield a real table. The initial | on the last line is missing. #+NAME: tbl-example-data #+BEGIN_SRC R :results value runif(n=5, min=0, max=1) #+END_SRC #+RESULTS: tbl-example-data | 0.850588989211246 | | 0.138243367196992 | | 0.382761054905131 | | 0.00688096368685365 | | 0.394350948277861 | #+NAME: R-mean #+header: :var x= #+header: :results output #+BEGIN_SRC R colMeans(x) #+END_SRC #+call: R-mean(x=tbl-example-data) #+results: :V1 : 0.4273072 #+tblname: summaries | mean | |--| | V1 | 0.2574993| #+TBLFM: @2$1='(org-sbe R-mean (x tbl-example-data())) hth, Tom -- Thomas S. Dye http://www.tsdye.com
Re: [O] cannot execute org-mode code from the front page tutorial.
Charles Berry ccbe...@ucsd.edu writes: Nick Dokos ndokos at gmail.com writes: tsd at tsdye.com (Thomas S. Dye) writes: Aloha Jenia, jenia.ivlev at gmail.com (jenia.ivlev) writes: Hello. I'm trying to go through the org-mode tutorial on its official page. [discussion showing that (if (listp value)...) generates a data.frame deleted] Ah, that's what's happening! [delete patch turning a data.frame into a vector] And assuming this is correct, the worg page will need to be corrected too. No patch is needed. The point of the code in org-babel-R-assign-elisp is to create a data.frame when `value' is a list. The patch adding `unlist(res)' turns it into an ordinary vector. This will break almost all uses of :var in R scr blocks. I don't think this example could have worked for a long while - turning elisp lists into R data.frames has been a feature for a good while. Also, note the use of `sbe' vs `org-sbe' in the formula. #+TBLFM: @2$1='(sbe R-mean (x tbl-example-data())) Use `colMeans(x)' to fix the worg page. Thanks! As penance, I'll try to fix the worg page (unless somebody beats me to it of cource). -- Nick
[O] cannot execute org-mode code from the front page tutorial.
Hello. I'm trying to go through the org-mode tutorial on its official page. However, I have trouble execute the code there #+NAME: tbl-example-data() #+BEGIN_SRC R :results value runif(n=5, min=0, max=1) #+END_SRC #+RESULTS: tbl-example-data | 0.565871287835762 | | 0.457158328965306 | | 0.0498181856237352 | | 0.988381117349491 | | 0.898329895688221 | #+NAME: R-mean(x) #+BEGIN_SRC R :var x=tbl-example-data mean(x) #+END_SRC #+call: R-mean(x=tbl-example-data) It returns me: Reference 'R-mean' not found in this buffer. Can someone please tell me how can I fix this error? Thanks in advance for your time and kind help. Jenia.
Re: [O] cannot execute org-mode code from the front page tutorial.
Aloha Jenia, jenia.iv...@gmail.com (jenia.ivlev) writes: Hello. I'm trying to go through the org-mode tutorial on its official page. However, I have trouble execute the code there #+NAME: tbl-example-data() #+BEGIN_SRC R :results value runif(n=5, min=0, max=1) #+END_SRC #+RESULTS: tbl-example-data | 0.565871287835762 | | 0.457158328965306 | | 0.0498181856237352 | | 0.988381117349491 | | 0.898329895688221 | #+NAME: R-mean(x) #+BEGIN_SRC R :var x=tbl-example-data mean(x) #+END_SRC #+call: R-mean(x=tbl-example-data) It returns me: Reference 'R-mean' not found in this buffer. FWIW, this code doesn't work for me, either, using a recent Org-mode from git. For others able to help, the org-mode tutorial on its official page that Jenia refers to is http://orgmode.org/worg/org-contrib/babel/intro.html#spreadsheet hth, Tom -- Thomas S. Dye http://www.tsdye.com
Re: [O] cannot execute org-mode code from the front page tutorial.
t...@tsdye.com (Thomas S. Dye) writes: Aloha Jenia, jenia.iv...@gmail.com (jenia.ivlev) writes: Hello. I'm trying to go through the org-mode tutorial on its official page. However, I have trouble execute the code there #+NAME: tbl-example-data() #+BEGIN_SRC R :results value runif(n=5, min=0, max=1) #+END_SRC #+RESULTS: tbl-example-data | 0.565871287835762 | | 0.457158328965306 | | 0.0498181856237352 | | 0.988381117349491 | | 0.898329895688221 | #+NAME: R-mean(x) #+BEGIN_SRC R :var x=tbl-example-data mean(x) #+END_SRC #+call: R-mean(x=tbl-example-data) It returns me: Reference 'R-mean' not found in this buffer. FWIW, this code doesn't work for me, either, using a recent Org-mode from git. For others able to help, the org-mode tutorial on its official page that Jenia refers to is http://orgmode.org/worg/org-contrib/babel/intro.html#spreadsheet I simplified the org file that leads to the error: --8---cut here---start-8--- #+name: tbl-example-data | foo | |---| | 0.996612656628713 | | 0.148018079344183 | | 0.560482589527965 | | 0.329234286677092 | | 0.99839389254339 | #+BEGIN_SRC R :var x=tbl-example-data mean(x) #+END_SRC #+RESULTS: : nil --8---cut here---end---8--- Running it in the debugger, I think what it does is the equivalent of --8---cut here---start-8--- x - local({con - textConnection(0.996612656628713 0.148018079344183 0.560482589527965 0.329234286677092 0.99839389254339) res - read.table( con, header= FALSE, row.names = NULL, sep = \t, as.is = TRUE ) close(con) res}) mean(x) --8---cut here---end---8--- and trying this on the command line, I get an error: , | x - local({con - textConnection(0.996612656628713 | 0.148018079344183 | 0.560482589527965 | 0.329234286677092 | 0.99839389254339) | res - read.table( | con, | header= FALSE, | row.names = NULL, | sep = \t, | as.is = TRUE | ) | close(con) | res}) | | + + + + + + + + + + + + + x | V1 | 1 0.9966127 | 2 0.1480181 | 3 0.5604826 | 4 0.3292343 | 5 0.9983939 | mean(x) | [1] NA | Warning message: | In mean.default(x) : argument is not numeric or logical: returning NA ` [Disclaimer: from this point on, I'm mostly talking about R - I know nothing about R] Fumbling around with typeof(x) and help(list), I stumbled upon unlist() and used it in the evaluation of x: , | x - local({con - textConnection(0.996612656628713 | 0.148018079344183 | 0.560482589527965 | 0.329234286677092 | 0.99839389254339) | res - read.table( | con, | header= FALSE, | row.names = NULL, | sep = \t, | as.is = TRUE | ) | close(con) | unlist(res)}) | + + + + + + + + + + + + + x | V11 V12 V13 V14 V15 | 0.9966127 0.1480181 0.5604826 0.3292343 0.9983939 | mean(x) | [1] 0.6065483 | ` Seems to work. Based on this purely empirical observation, I applied this patch to org: --8---cut here---start-8--- diff --git a/lisp/ob-R.el b/lisp/ob-R.el index 9f4eb4b..f3338cb 100644 --- a/lisp/ob-R.el +++ b/lisp/ob-R.el @@ -106,7 +106,7 @@ this variable.) as.is = TRUE ) close(con) - res + unlist(res) }) R code used to transfer a table defined as a variable from org to R. This function is used when the table contains a header.) @@ -126,7 +126,7 @@ This function is used when the table contains a header.) col.names = paste(\V\, seq_len(%d), sep =\\) ) close(con) - res + unlist(res) }) R code used to transfer a table defined as a variable from org to R. This function is used when the table does not contain a header.) --8---cut here---end---8--- and the org file at the top works. But this clearly needs to be vetted by an R expert. The original example needs some changes to work, mainly simplification of the #+names: --8---cut here---start-8---
Re: [O] cannot execute org-mode code from the front page tutorial.
I can't make the changes - apply the your path - because my ob-R.el file is completly different, its a elisp file and doesnt contain any R code. The file is located at /usr/share/emacs/24.3/lisp/org/ob-R.el Can you tell me how do I proceed to apply our changes to my emacs? Thanks again for your help. Jenia.
Re: [O] cannot execute org-mode code from the front page tutorial.
jenia.iv...@gmail.com (jenia.ivlev) writes: I can't make the changes - apply the your path - because my ob-R.el file is completly different, its a elisp file and doesnt contain any R code. The file is located at /usr/share/emacs/24.3/lisp/org/ob-R.el Can you tell me how do I proceed to apply our changes to my emacs? Thanks again for your help. Sorry, I tested latest org (and wrongly assumed that that's what you are using). Can you post the results of M-x org-version here? I'll try to take a look at what goes wrong in that version. For the record, the patch modifies the initialization of two lisp constants that ob-R.el defines in its latest incarnation. This change was introduced by Rainer Krug on June 23 with commit 4c415f38a5c71b45409faf9b59030ee7cee6abad. Before that, the values were transmitted through temporary files. I hope Rainer (cc'ed) takes a look at this thread: he is clearly the R expert here. -- Nick
Re: [O] cannot execute org-mode code from the front page tutorial.
jenia.iv...@gmail.com (jenia.ivlev) writes: I can't make the changes - apply the your path - because my ob-R.el file is completly different, its a elisp file and doesnt contain any R code. The file is located at /usr/share/emacs/24.3/lisp/org/ob-R.el Can you tell me how do I proceed to apply our changes to my emacs? Thanks again for your help. Jenia. Sorry, I tested latest org (and wrongly assumed that that's what you are using). Can you post the results of M-x org-version here? I'll try to take a look at what goes wrong in that version. For the record, the patch modifies the initialization of two lisp constants that ob-R.el defines in its latest incarnation. This change was introduced by Rainer Krug on June 23 with commit 4c415f38a5c71b45409faf9b59030ee7cee6abad. Before that, the values were transmitted through temporary files. I hope Rainer takes a look at this thread: he is clearly the R expert here. -- Nick -- Nick