From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniil Mirylenka Subject: Bug: R code block fails on one-dimensional variable [8.2.6 (8.2.6-dist @ /Users/dmirylenka/src/org-8.2.6/lisp/)] Date: Mon, 19 May 2014 22:01:25 +0200 Message-ID: <537A6315.5060208@disi.unitn.it> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:45153) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WmTkW-0006sI-HR for emacs-orgmode@gnu.org; Mon, 19 May 2014 16:01:35 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WmTkO-0001HS-Uz for emacs-orgmode@gnu.org; Mon, 19 May 2014 16:01:28 -0400 Received: from mail0.unitn.it ([193.205.194.10]:62018) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WmTkO-0001G8-Kg for emacs-orgmode@gnu.org; Mon, 19 May 2014 16:01:20 -0400 Received: from mail0.unitn.it (localhost.localdomain [127.0.0.1]) by localhost (Email Security Appliance) with SMTP id 26EAA191EB2_37A630CB for ; Mon, 19 May 2014 20:01:16 +0000 (GMT) Received: from mailhub2.unitn.it (mailhub.unitn.it [192.168.206.47]) by mail0.unitn.it (Sophos Email Appliance) with ESMTP id B690C18F0D6_37A630BF for ; Mon, 19 May 2014 20:01:15 +0000 (GMT) Received: from disi.unitn.it (disi.unitn.eu [193.205.194.4]) by mailhub2.unitn.it (Postfix) with ESMTP id 9E7D6B0D3D3 for ; Mon, 19 May 2014 22:01:15 +0200 (CEST) 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: emacs-orgmode@gnu.org I am execute the following code block, (in an empty scratch buffer, by running 'M-x org-babel-execute-src-block'): > #+BEGIN_SRC R :var x='(1 2 3) > x > #+END_SRC What I expect is: > #+RESULTS: > | 1 | 2 | 3 | Instead, I get no output, and the following error message: > Wrong number of arguments: max, 0 The problem seems to be with one-dimensional variables, like x='(1 2 3): when I change the variable to either x=2 or x='((1 2 3)), the code works as expected. Here is the output from the debugger: > Debugger entered--Lisp error: (wrong-number-of-arguments max 0) > max() > apply(max nil) > org-babel-R-assign-elisp(x (1 2 3) nil nil) > #[(pair) "\302@A\303\304 \"A\305\232\303\306 \"A\305\232$\207" > [pair params org-babel-R-assign-elisp assoc :colnames "yes" :rownames] > 7]((x 1 2 3)) > mapcar(#[(pair) "\302@A\303\304 \"A\305\232\303\306 > \"A\305\232$\207" [pair params org-babel-R-assign-elisp assoc > :colnames "yes" :rownames] 7] ((x 1 2 3))) > org-babel-variable-assignments:R(((:comments . "") (:shebang . "") > (:cache . "no") (:padline . "") (:noweb . "no") (:tangle . "no") > (:exports . "code") (:results . "replace") (:var x 1 2 3) (:session . > "none") (:hlines . "no") (:result-type . value) (:result-params > "replace") (:rowname-names) (:colname-names))) > org-babel-expand-body:R("x" ((:comments . "") (:shebang . "") > (:cache . "no") (:padline . "") (:noweb . "no") (:tangle . "no") > (:exports . "code") (:results . "replace") (:var x 1 2 3) (:session . > "none") (:hlines . "no") (:result-type . value) (:result-params > "replace") (:rowname-names) (:colname-names)) nil) > org-babel-execute:R("x" ((:comments . "") (:shebang . "") (:cache . > "no") (:padline . "") (:noweb . "no") (:tangle . "no") (:exports . > "code") (:results . "replace") (:var x 1 2 3) (:session . "none") > (:hlines . "no") (:result-type . value) (:result-params "replace") > (:rowname-names) (:colname-names))) > org-babel-execute-src-block() > call-interactively(org-babel-execute-src-block record nil) > command-execute(org-babel-execute-src-block record) > execute-extended-command(nil "org-babel-execute-src-block") > call-interactively(execute-extended-command nil nil) Not sure if it helps, but for me the problem goes away when I change the following lines in ob-R.el: What is there currently: > (let ((max (apply #'max (mapcar #'length (org-remove-if-not > #'sequencep value)))) > (min (apply #'min (mapcar #'length (org-remove-if-not > #'sequencep value)))) What I change it to: > (let* ((lengths (mapcar #'length (org-remove-if-not #'sequencep value))) > (max (if lengths (apply #'max lengths) 0)) > (min (if lengths (apply #'min lengths) 0)) Bellow you can find my setup. Best regards, Daniil ------------------------------------------------------------------------ Emacs : GNU Emacs 24.3.1 (x86_64-apple-darwin13.0.0, NS apple-appkit-1265.00) of 2013-10-25 on dmirylenka Package: Org-mode version 8.2.6 (8.2.6-dist @ /Users/dmirylenka/src/org-8.2.6/lisp/) current state: ============== (setq org-tab-first-hook '(org-hide-block-toggle-maybe org-src-native-tab-command-maybe org-babel-hide-result-toggle-maybe org-babel-header-arg-expand) org-speed-command-hook '(org-speed-command-default-hook org-babel-speed-command-hook) org-occur-hook '(org-first-headline-recenter) org-metaup-hook '(org-babel-load-in-session-maybe) org-confirm-shell-link-function 'yes-or-no-p org-after-todo-state-change-hook '(org-clock-out-if-current) org-src-mode-hook '(org-src-babel-configure-edit-buffer org-src-mode-configure-edit-buffer) org-agenda-before-write-hook '(org-agenda-add-entry-text) org-babel-pre-tangle-hook '(save-buffer) org-mode-hook '(#[nil "\300\301\302\303\304$\207" [org-add-hook change-major-mode-hook org-show-block-all append local] 5] #[nil "\300\301\302\303\304$\207" [org-add-hook change-major-mode-hook org-babel-show-result-all append local] 5] org-babel-result-hide-spec org-babel-hide-all-hashes) org-ctrl-c-ctrl-c-hook '(org-babel-hash-at-point org-babel-execute-safely-maybe) org-cycle-hook '(org-cycle-hide-archived-subtrees org-cycle-hide-drawers org-cycle-hide-inline-tasks org-cycle-show-empty-lines org-optimize-window-after-visibility-change) org-confirm-elisp-link-function 'yes-or-no-p org-metadown-hook '(org-babel-pop-to-session-maybe) org-babel-load-languages '((R . t)) org-clock-out-hook '(org-clock-remove-empty-clock-drawer) )