Re: [BUG] With R using ":var d=data" breaks ":colnames yes" [9.7-pre (release_9.6.10-881-g595a32]

2024-03-07 Thread Ihor Radchenko
Paul Stansell  writes:

> Thanks for your advice, it helps a lot.  Sorry for submitting
> something that wasn't a bug.

While not a bug, the situation can certainly be improved.
Things should be a bit smarter on main after
https://git.savannah.gnu.org/cgit/emacs/org-mode.git/commit/?id=cab81f242

-- 
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at .
Support Org development at ,
or support my work at 



Re: [BUG] With R using ":var d=data" breaks ":colnames yes" [9.7-pre (release_9.6.10-881-g595a32]

2024-03-07 Thread Paul Stansell
Hi Ihor,

Thanks for your advice, it helps a lot.  Sorry for submitting
something that wasn't a bug.

Paul

On Thu, 7 Mar 2024 at 13:16, Ihor Radchenko  wrote:

> Paul Stansell  writes:
>
> > It seems that using ":var d=data" breaks ":colnames yes" in the header of
> > an R code block.
> > ...
> > #+name: data
> > |+|
> > |  x |  y |
> > |+|
> > | 111.89 |  88.37 |
> > | 392.12 | 297.33 |
> > |+|
>
> It is expected.
> :colnames yes implies:
>
>  The ‘colnames’ header argument accepts ‘yes’, ‘no’, or ‘nil’
>  values.  The default value is ‘nil’: if an input table has column
>  names--because the second row is a horizontal rule--then Org
>  removes the column names, processes the table, puts back the column
>  names, and then writes the table to the results block.  Using
>  ‘yes’, Org does the same to the first row, even if the initial
>  ^
>  table does not contain any horizontal rule.  When set to ‘no’, Org
>  does not pre-process column names at all.
>
> In your table, the first row is a horizontal line, so Org tries to parse
> the first line as column names. And fails, of course.
>
> I guess that we can make `org-babel-get-colnames' smarter and make it
> skip the leading hlines.
>
> --
> Ihor Radchenko // yantar92,
> Org mode contributor,
> Learn more about Org mode at .
> Support Org development at ,
> or support my work at 
>


Re: [BUG] With R using ":var d=data" breaks ":colnames yes" [9.7-pre (release_9.6.10-881-g595a32]

2024-03-07 Thread Ihor Radchenko
Paul Stansell  writes:

> It seems that using ":var d=data" breaks ":colnames yes" in the header of
> an R code block.
> ...
> #+name: data
> |+|
> |  x |  y |
> |+|
> | 111.89 |  88.37 |
> | 392.12 | 297.33 |
> |+|

It is expected.
:colnames yes implies:

 The ‘colnames’ header argument accepts ‘yes’, ‘no’, or ‘nil’
 values.  The default value is ‘nil’: if an input table has column
 names--because the second row is a horizontal rule--then Org
 removes the column names, processes the table, puts back the column
 names, and then writes the table to the results block.  Using
 ‘yes’, Org does the same to the first row, even if the initial
 ^
 table does not contain any horizontal rule.  When set to ‘no’, Org
 does not pre-process column names at all.

In your table, the first row is a horizontal line, so Org tries to parse
the first line as column names. And fails, of course.

I guess that we can make `org-babel-get-colnames' smarter and make it
skip the leading hlines.

-- 
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at .
Support Org development at ,
or support my work at 



[BUG] With R using ":var d=data" breaks ":colnames yes" [9.7-pre (release_9.6.10-881-g595a32]

2024-03-06 Thread Paul Stansell
Hello,

It seems that using ":var d=data" breaks ":colnames yes" in the header of
an R code block.

In the example below the first code block uses ":colnames yes" and gives
the correct output, the second code block uses ":var d=data" to read the
data in the table (although it read the header as data), and the third code
uses both ":colnames yes" and ":var d=data" but gives the error "Wrong type
argument: sequencep, hline".

Thanks,

Paul

# = Start example =
#+name: data
|+|
|  x |  y |
|+|
| 111.89 |  88.37 |
| 392.12 | 297.33 |
|+|

This code block works as expected.
#+begin_src R --no-save --no-restore :colnames yes
  data.frame(x=1, y=2)
#+end_src

#+RESULTS:
| x | y |
|---+---|
| 1 | 2 |


This code block shows that the data in the table can be read (although
the table header is read as data).
#+begin_src R --no-save --no-restore :var d=data
  d
#+end_src

#+RESULTS:
|  x |  y |
| 111.89 |  88.37 |
| 392.12 | 297.33 |


However, using both ":colnames yes" and ":var d=data" together gives
an error "Wrong type argument: sequencep, hline"
#+begin_src R --no-save --no-restore :colnames yes :var d=data
  data.frame(x=1, y=2)
#+end_src
# = End example =



Emacs  : GNU Emacs 27.1 (build 1, x86_64-pc-linux-gnu, GTK+ Version
3.24.33, cairo version 1.16.0)
 of 2023-08-16, modified by Debian
Package: Org mode version 9.7-pre (release_9.6.10-881-g595a32 @
/home/ps/.emacs.d_Kubuntu-23.04/org-mode-git/lisp/)

current state:
==
(setq
 org-src-mode-hook '(org-src-babel-configure-edit-buffer
org-src-mode-configure-edit-buffer)
 org-link-shell-confirm-function 'yes-or-no-p
 org-metadown-hook '(org-babel-pop-to-session-maybe)
 org-html-format-inlinetask-function
'org-html-format-inlinetask-default-function
 org-odt-format-headline-function 'org-odt-format-headline-default-function
 org-persist-before-write-hook '(org-element--cache-persist-before-write)
 org-ascii-format-inlinetask-function 'org-ascii-format-inlinetask-default
 org-startup-folded t
 org-id-link-to-org-use-id t
 org-mode-hook '((closure
  (org-agenda-skip-regexp org-fold-core-style
org-table1-hline-regexp
   org-table-tab-recognizes-table\.el
org-table-dataline-regexp
   org-table-any-border-regexp
org-agenda-restriction-lock-overlay
   org-agenda-overriding-restriction org-agenda-diary-file
   org-complex-heading-regexp calendar-mode-map t)
  nil (setq imenu-create-index-function
'org-imenu-get-tree))
 (closure
  (org--rds reftex-docstruct-symbol org-attach-method
   org--single-lines-list-is-paragraph
org-element-greater-elements
   org-agenda-restrict-end org-agenda-restrict-begin
org-agenda-restrict
   visual-fill-column-width org-clock-history
org-agenda-current-date
   org-with-time org-defdecode org-def
org-read-date-inactive org-ans2
   org-ans1 org-columns-current-fmt-compiled
org-clock-current-task
   org-clock-effort org-agenda-skip-function
org-agenda-skip-comment-trees
   org-agenda-archives-mode org-end-time-was-given
org-time-was-given
   org-log-note-extra org-log-note-purpose
org-log-post-message
   org-last-inserted-timestamp org-last-changed-timestamp
   org-entry-property-inherited-from org-state
   org-agenda-headline-snapshot-before-repeat
org-agenda-buffer-name
   org-agenda-start-on-weekday org-agenda-buffer-tmp-name
   org-priority-regexp org-mode-abbrev-table
org-element-cache-persistent
   org-element-cache-version buffer-face-mode-face
org-tbl-menu org-org-menu
   org-struct-menu org-entities org-last-state
org-id-track-globally
   org-clock-start-time texmathp-why remember-data-file
   org-agenda-tags-todo-honor-ignore-options
calc-embedded-open-mode
   calc-embedded-open-formula calc-embedded-close-formula
   align-mode-rules-list org-emphasis-alist
org-emphasis-regexp-components
   org-export-registered-backends org-modules crm-separator
   org-babel-load-languages org-id-overriding-file-name
   org-indent-indentation-per-level
org-element--timestamp-regexp
   org-element-cache-map-continue-from
org-element-paragraph-separate
   org-agenda-buffer-name org-inlinetask-min-level t)
  nil (add-hook 'change-major-mode-hook 'org-fold-show-all
'append 'local))
 (closure
  (org-src-window-setup *this*
org-babel-confirm-evaluate-answer-no
   org-babel-tangle-uncomment-comments org-src-lang-modes