emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Jeremie Juste <jeremiejuste@gmail.com>
To: Greg Minshall <minshall@umich.edu>
Cc: "Johan Tolö" <johan@toloe.se>,
	emacs-orgmode@gnu.org, "Berry, Charles" <ccberry@health.ucsd.edu>
Subject: Re: [BUG] ob-R.el: extra empty data.frame columns generated from plain lists after recent change [9.6 (release_9.6-3-ga4d38e @ /usr/share/emacs/30.0.50/lisp/org/)]
Date: Tue, 06 Dec 2022 23:11:56 +0100	[thread overview]
Message-ID: <87wn74xjv7.fsf@gmail.com> (raw)
In-Reply-To: <766358.1670208594@archlinux> (Greg Minshall's message of "Sun, 04 Dec 2022 18:49:54 -0800")

Hello,

Many thanks for the insights. I confess that I have never transferred
list from org to R before. I've always use tables and as far as I
understand they works fine in 9.6.

So assuming this list

#+name: alist 
- first item
- second item
- third item
  - 3.1 item
- fourth item


before c72d5ee84 we could do something like 

#+begin_src R :var list=alist
  list
#+end_src

#+RESULTS:
| first item  |                        |
| second item |                        |
| third item  | (unordered (3.1 item)) |
| fourth item |                        |

and after we end up with 


#+begin_src R :var list=alist
  list
#+end_src

#+RESULTS:
| first item | second item | third item | fourth item |   |   |   |   |   |   |

Here I'm on uncharted territory. We could go with 
1.
| first item | second item | third item | fourth item |

or be closer to the version 9.5 with
2. 
| first item  | 
| second item | 
| third item  | 
| fourth item | 

However I'm still tempted to choose the second option to break as little
workflow as possible.

If we go in this direction the solution of Chuck works fine. Many thanks
for the suggestions.

> @@ -241,7 +241,7 @@ This function is called by `org-babel-execute-src-block'."
> (defun org-babel-R-assign-elisp (name value colnames-p rownames-p)
>   "Construct R code assigning the elisp VALUE to a variable named NAME."
>   (if (listp value)
> -      (let* ((lengths (mapcar 'length (cl-remove-if-not 'sequencep value)))
> +      (let* ((lengths (mapcar 'length (cl-remove-if-not 'listp value)))
> 	     (max (if lengths (apply 'max lengths) 0))
> 	     (min (if lengths (apply 'min lengths) 0)))
>         ;; Ensure VALUE has an orgtbl structure (depth of at least 2).

-         (unless (listp (car value)) (setq value (list value)))
+         (unless (listp (car value)) (setq value (mapcar 'list value)))



Do you have any case of using org-list to R? Do you think we could use
the list for a different purpose.  Suggestions are welcome.

Best regards,
Jeremie








On Sunday,  4 Dec 2022 at 18:49, Greg Minshall wrote:
> for the record, these are the tests i ran with my off-the-cuff "fix"
> (s/sequencep/listp/):
> ----
>
> #+name: alist
> - first item
>
> - second item
> - third item
>
> #+begin_src R :var list=alist :session ss
>  list
> #+end_src
>
>
> #+RESULTS:
> | first item | second item | third item |
>
> #+begin_src R :var variable='(a test)
>   variable
> #+end_src
>
>
> #+RESULTS:
> | a | test |
>
> #+name: atable
> | this | is | a | header | line |
>
> |------+----+---+--------+------|
> | 1    | 2  | 3 | 4      | 5    |
> | a    | b  | c | d      | e    |
>
> #+begin_src R :var list=atable :session ss
>  list
> #+end_src
>
>
> #+RESULTS:
> | 1 | 2 | 3 | 4 | 5 |
> | a | b | c | d | e |
>
> #+begin_src R :var list='((1 2 3) (1 2))
>   list
> #+end_src
>
>
> #+RESULTS:
> | 1 | 2 | 3 |
> | 1 | 2 |   |
>
> #+begin_src elisp :var list=alist
>  list
> #+end_src
>
> #+RESULTS:
> | first item | second item | third item |


  reply	other threads:[~2022-12-06 22:13 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-12-04 14:34 [BUG] ob-R.el: extra empty data.frame columns generated from plain lists after recent change [9.6 (release_9.6-3-ga4d38e @ /usr/share/emacs/30.0.50/lisp/org/)] Johan Tolö
2022-12-05  2:43 ` Greg Minshall
2022-12-05 10:29   ` Johan Tolö
2022-12-05 11:21     ` Jérémie Juste
2022-12-05 18:57   ` Berry, Charles
2022-12-06  0:41     ` Greg Minshall
2022-12-06  4:31       ` Berry, Charles
2022-12-06  6:52         ` Greg Minshall
2022-12-05  2:49 ` Greg Minshall
2022-12-06 22:11   ` Jeremie Juste [this message]
2022-12-07  1:31     ` Greg Minshall
2022-12-07  1:53       ` William Denton
2022-12-07 12:16     ` Ihor Radchenko
2022-12-07 21:08       ` Jeremie Juste
2022-12-08  9:07         ` Ihor Radchenko
2022-12-08 12:42           ` Greg Minshall
2022-12-08 12:51             ` Ihor Radchenko
2022-12-08 13:33               ` Greg Minshall
2022-12-10 12:31               ` Johan Tolö
2022-12-11  8:51                 ` [FR] Allow passing nested list structures to variables in src blocks (was: [BUG] ob-R.el: extra empty data.frame columns generated from plain lists after recent change [9.6 (release_9.6-3-ga4d38e @ /usr/share/emacs/30.0.50/lisp/org/)]) Ihor Radchenko
2022-12-11 15:31           ` [BUG] ob-R.el: extra empty data.frame columns generated from plain lists after recent change [9.6 (release_9.6-3-ga4d38e @ /usr/share/emacs/30.0.50/lisp/org/)] Jeremie Juste
2022-12-12  9:47             ` Ihor Radchenko
2022-12-12 12:17               ` Greg Minshall
2022-12-12 12:27                 ` Ihor Radchenko
2022-12-13 13:29                 ` Johan Tolö
2022-12-14  2:53                   ` Greg Minshall
2022-12-15  8:51                     ` Johan Tolö
2022-12-15 17:50                       ` Greg Minshall
2022-12-29 16:00               ` Bastien Guerry
2022-12-29 23:52                 ` Berry, Charles
2022-12-30  9:25                   ` Bastien
2022-12-31 12:42                   ` Ihor Radchenko
2022-12-30  9:24               ` Bastien Guerry

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87wn74xjv7.fsf@gmail.com \
    --to=jeremiejuste@gmail.com \
    --cc=ccberry@health.ucsd.edu \
    --cc=emacs-orgmode@gnu.org \
    --cc=johan@toloe.se \
    --cc=minshall@umich.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).