From mboxrd@z Thu Jan 1 00:00:00 1970 From: Nick Dokos Subject: Re: R and babel on Windows problem Date: Fri, 06 Jul 2012 14:45:34 -0400 Message-ID: <23203.1341600334@alphaville> References: <87ipea3rfq.fsf@Rainer.invalid> <18442.1340998640@alphaville> <18840.1341001001@alphaville> <31262.1341264369@alphaville> <21447.1341594758@alphaville> Reply-To: nicholas.dokos@hp.com Return-path: Received: from eggs.gnu.org ([208.118.235.92]:42063) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SnDXx-0004ye-6D for emacs-orgmode@gnu.org; Fri, 06 Jul 2012 14:46:31 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SnDXu-0006hq-Lz for emacs-orgmode@gnu.org; Fri, 06 Jul 2012 14:46:28 -0400 Received: from vms173001pub.verizon.net ([206.46.173.1]:54766) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SnDXu-0006Zp-FV for emacs-orgmode@gnu.org; Fri, 06 Jul 2012 14:46:26 -0400 Received: from alphaville.dokosmarshall.org ([unknown] [98.110.161.175]) by vms173001.mailsrvcs.net (Sun Java(tm) System Messaging Server 7u2-7.02 32bit (built Apr 16 2009)) with ESMTPA id <0M6R004PQ5FY1292@vms173001.mailsrvcs.net> for emacs-orgmode@gnu.org; Fri, 06 Jul 2012 13:45:36 -0500 (CDT) In-reply-to: Message from John Hendy of "Fri, 06 Jul 2012 12:46:44 CDT." 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: John Hendy Cc: Achim Gratz , emacs-orgmode@gnu.org 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? > 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''. > 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 :-) 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 > >> >> >> > > >> >> >> > >> >> > >> > > > > >