From mboxrd@z Thu Jan 1 00:00:00 1970 From: John Hendy Subject: Re: R and babel on Windows problem Date: Fri, 6 Jul 2012 17:08:56 -0500 Message-ID: References: <87ipea3rfq.fsf@Rainer.invalid> <18442.1340998640@alphaville> <18840.1341001001@alphaville> <31262.1341264369@alphaville> <21447.1341594758@alphaville> <23203.1341600334@alphaville> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Return-path: Received: from eggs.gnu.org ([208.118.235.92]:52466) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SnGhx-0001tk-T4 for emacs-orgmode@gnu.org; Fri, 06 Jul 2012 18:09:03 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SnGhv-0002q0-Ab for emacs-orgmode@gnu.org; Fri, 06 Jul 2012 18:09:01 -0400 Received: from mail-bk0-f41.google.com ([209.85.214.41]:40821) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SnGhu-0002po-U9 for emacs-orgmode@gnu.org; Fri, 06 Jul 2012 18:08:59 -0400 Received: by bkcjc3 with SMTP id jc3so6400622bkc.0 for ; Fri, 06 Jul 2012 15:08:57 -0700 (PDT) In-Reply-To: <23203.1341600334@alphaville> List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: nicholas.dokos@hp.com Cc: Achim Gratz , emacs-orgmode@gnu.org On Fri, Jul 6, 2012 at 1:45 PM, Nick Dokos wrote: > John Hendy wrote: > >> On Fri, Jul 6, 2012 at 12:12 PM, Nick Dokos wrote: >> > John Hendy wrote: >> > >> >> Any updates on this? Could someone provide a minimal example I could >> >> try? Or verify that my steps above are correct. I'm not sure why it's >> >> not triggering the step by step function execution described. >> >> >> > >> > I had sent out a note about C-u C-M-x and what you should see in the >> > echo area after that, but I don't think I've seen a reply: did you try >> > that and did it work as expected? >> > >> > Either gmane is or I am being stupid right now and cannot find the message >> > (maybe it never made it, but gmane cannot seem to find the thread at all >> > right now), so I append a copy of that message. >> >> Yes. I guess I didn't explicitly say, but I mentioned that I had >> triggered something goofy by accident in my earlier hunt for edebug. >> I'll walkthrough right now: >> - Got to ob-R.el in emacs >> - C-s to find org-babel-R-evaluate-external-process >> - C-u C-M-x >> - Minibuffer: "Edebug: org-babel-R-evaluate-external-process" >> - Visit file test.org >> - C-c C-c on the src block >> - Well... of course it works now. Not sure what I was doing wrong before. >> > > The reason that I sent out that note was that you mentioned pressing M-x > C-M-x (rather than C-u C-M-x) and getting the name of the function > echoed (without the "Edebug: " part), so I wanted to make sure that you > were DTRT here. Could that be what you were doing wrong? or was that a > typo on your part? Whoops -- yes, this was me probably making a typo. Or maybe the first time around I was messing it up which is why it wasn't working. It ended up working in the end. > >> I pressed space continually until failure, then again to verify the >> failing line. It's this one (line 313): >> >> ,--- >> | (output (org-babel-eval org-babel-R-command body)))) >> `--- >> > > Just fyi and to clarify some basic lisp: the form > > (org-babel-eval org-babel-R-command body) > > says: evaluate the org-babel-eval function with arguments > org-babel-R-command and body (actually, those variables are evaluated > first and then the *values* are passed to the function). The evaluation > returns a result (a string in this case) which is assigned to the local > variable output for further processing (local, because this whole thing > is part of a let-form which is not shown in your snippet). > > I.e. a function call in lisp always looks like this: > > ( ....) > >> When I run this line: >> >> ,--- >> | (org-babel-eval org-babel-R-command >> `--- >> >> I get this in the minibuffer: >> >> ,--- >> | Result: "C:/Progra~1/R/R-2.15.0/bin/R" >> `--- >> > > I presume you just typed "e" when the cursor was after the variable: > that just evaluates the variable. If you press SPACE then the cursor > would advance to after the ``body'' variable (on the closing paren) and > an "e" would evaluate *that* variable. After another SPACE, the cursor > would be *after* the closing paren and an "e" would evaluate the function > call and you would see the result, i.e. what would be assigned to > ``output''. > Maybe I didn't get edebug right. I just kept pressing space with no 'e'... >> Should I be able to run this from the Windows cmd prompt successfully? >> I think this is my problem. Even using tab completion to ensure the >> path is correct, I get the same error message "The system cannot find >> the path specified" when I run this from cmd! >> >> I guess I honed in on my problem. I can run R from my Start Menu shortcut fine. >> >> Update: I'm on 64bit and just now realized there's another set of R >> cmds in ../R-2.15.0/bin/x64/. This is what I needed. >> >> Now my problem is that using R along doesn't produce any output. With >> the above modification, I get: >> >> ,--- >> | Fatal error: you must specify '--save', '--no-save' or '--vanilla' >> `--- >> >> I'm quite close! If I add --no-save, I get exported results but they >> include all of the R preamble text from when it starts. Here's my >> block for reference: >> >> #+begin_src R :results output org :exports results >> >> x <- c(1:10) >> summary(x) >> >> #+end_src >> > > OK, at this point I will "exit, stage left, chased by a bear", since > both Windoze and R are within my areas of almost complete ignorance :-) > No worries and serious thanks for bearing with me. Eric got it with the options to pass via the org-babel-R-command variable. Since the default includes --slave and --no-save and I changed it, I needed to add that to my custom setting of the variable. Thanks again! John > Nick > >> >> >> Thanks, >> John >> >> >> > >> > Nick >> > >> > >> > John Hendy wrote: >> > ... >> >> > >> >> > Oh, sorry: edebug is described in >> >> > >> >> > (info "(elisp) Edebug") >> >> > >> >> > The basics: visit ob-R.el, go to the org-babel-R-evaluate-external-process >> >> > definition and press C-u C-M-x. Then do whatever you were doing to get the >> >> > problem. It should stop at the function and you can single-step by pressing >> >> > SPACE. At strategic points, you can evaluate things with "e". >> >> >> >> Eeks. Is the fact that I learned emacs only for org-mode showing. I >> >> don't even know how to =(info "(elisp) Edebug")= -- do I put an =M-x= >> >> in front of that? =M-x info= seems to bring me to a help page for >> >> info! >> >> >> > >> > You have to evaluate it somehow. If you are reading your mail in emacs, >> > just place the cursor after the closing paren and press C-x C-e. If not, >> > just go to emacs and "C-h i elisp RET i edebug RET" or equivalently, >> > type ESC ESC : (info "(elisp) Edebug") RET. Underlying assumption: you >> > have the Emacs Lisp info files installed. >> > >> >> Anyway... I just googled edebug and it says about the same as you did >> >> (except for appending "eval-defun with a prefix argument" onto =C-u >> >> C-M-x=. >> >> - http://www.gnu.org/software/emacs/manual/html_node/elisp/Using-Edebug.html >> >> >> >> Anyway: >> >> - Visited ob-R.el in emacs >> >> - Found org-babel-R-evaluate-external-process >> >> - Put the cursor on the line =(defun org-babel-R-evaluate-external-process= >> >> - Did =M-x C-M-x= and the minibuffer echoed the name of the function >> > >> > C-u C-M-x please: and the echo area should say "Edebug: >> > org-babel-R-evaluate-external-process" afterwards. >> > >> > Nick >> > >> >> - Visited my file, test.org and did =C-c C-c= on the R babel block >> >> - Nothing different occurred; I just got "The system cannot find the >> >> path specified" >> >> >> >> I tried the above again with regular 'ol org-babel-R-evaluate just in >> >> case and had the same results. >> >> >> >> I'm clearly goofing something but have no idea what it is. >> >> >> >> >> >> John >> >> >> >> >> >> > >> >> > If you mess it up (and you probably will a few times), no problem: just try >> >> > again. And be patient! >> >> > >> >> > Good luck, >> >> > Nick >> >> > >> >> > >> >> > >> >> >> >> >> >> John >> >> >> >> >> >> >> >> >> > >> >> >> > Nick >> >> >> > >> >> >> >> Using =M-x R= works find. ESS is finding R. I successfully loaded a >> >> >> >> .csv, ggplot2 and plotted. >> >> >> >> >> >> >> >> >> >> >> >> John >> >> >> >> >> >> >> >> John >> >> >> >> >> >> >> >> > >> >> >> >> > Nick >> >> >> >> > >> >> >> >> >> >> >> >> >> >> > >> > >>