[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [O] org tables into R?
From: |
Andreas Leha |
Subject: |
Re: [O] org tables into R? |
Date: |
Tue, 06 Jan 2015 12:07:42 +0000 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.4.50 (darwin) |
Hi Rainer,
Thanks for chiming in.
Rainer M Krug <address@hidden> writes:
> Andreas Leha <address@hidden> writes:
>
>> Hi Aaron and Nicolas,
>
> Sorry for coming so late to this topic - I should try to figure out what
> is causing the problem as I am the one responsible for this code...
>
>>
>> Thanks for partly fixing this issue. Unfortunately, when working with
>> source block interactively the issue persists for me. If in the same
>> sample file I view the source block via 'C-c C-v v' and step through the
>> generated code line-by-line, the table is again not split into columns.
>>
>> This time I immediately tried with 'emacs -Q' and I can reproduce the
>> issue.
>>
>> Here is the ecm again:
>>
>> * test
>> #+NAME: data
>> | A | B | C |
>> |-----+----+----|
>> | 115 | 76 | 60 |
>> | 124 | 78 | 55 |
>> | 118 | 73 | 65 |
>> | 114 | 75 | 61 |
>> | 108 | 74 | 82 |
>>
>> and pass it into R like this, then evaluation (C-c C-c) works, but
>> stepping through the code generated for viewing (C-c C-v v) does not:
>>
>> #+BEGIN_SRC R :results output :exports both :session :var data.table=data
>> names(data.table)
>> head(data.table)
>> #+END_SRC
>>
>> #+results:
>> : [1] "A" "B" "C"
>> : A B C
>> : 1 115 76 60
>> : 2 124 78 55
>> : 3 118 73 65
>> : 4 114 75 61
>> : 5 108 74 82
>>
>> #+begin_src emacs-lisp
>> (concat
>> (replace-regexp-in-string " on .*" "" (emacs-version))
>> "\n"
>> (replace-regexp-in-string " @.*" ")" (org-version nil t))
>> "\n"
>> (replace-regexp-in-string "].*" "]" (ess-version)))
>> #+end_src
>>
>> #+results:
>> : GNU Emacs 24.4.50.1 (x86_64-apple-darwin13.3.0, NS appkit-1265.21 Version
>> 10.9.4 (Build 13E28))
>> : of 2014-09-02
>> : Org-mode version 8.3beta (release_8.3beta-717-ga8096c)
>> : ess-version: 14.05 [git: 4283f1304a54502c42707b6a4ba347703f0992dd]
>>
>
> ,----
> | #+RESULTS:
> | : GNU Emacs 24.4.1 (x86_64-apple-darwin14.0.0, Carbon Version 157 AppKit
> 1343.16)
> | : of 2014-11-24
> | : Org-mode version 8.3beta (release_8.3beta-695-g390015)
> | : ess-version: 14.09 [svn: 6041 (2014-09-13)]
> `----
>
>
> I get the same in the preview, but it works for me. I do not use -q.
>
> ,----
> | > data.table <- local({
> | + con <- textConnection(
> | + "\"A\" \"B\" \"C\"
> | + \"115\" \"76\" \"60\"
> | + \"124\" \"78\" \"55\"
> | + \"118\" \"73\" \"65\"
> | + \"114\" \"75\" \"61\"
> | + \"108\" \"74\" \"82\""
> | + )
> | + res <- utils::read.table(
> | + con,
> | + header = TRUE,
> | + row.names = NULL,
> | + sep = "\t",
> | + as.is = TRUE
> | + )
> | + close(con)
> | + res
> | + })
> | > names(data.table)
> | [1] "A" "B" "C"
> | > head(data.table)
> | A B C
> | 1 115 76 60
> | 2 124 78 55
> | 3 118 73 65
> | 4 114 75 61
> | 5 108 74 82
> | >
> `----
>
>
>>
>> Here is what I see in the org babel preview:
>>
>
> This might be due to temail, but you don't have tabs (\t) between your
> entries below - could you verify if this is the case? If yes, this might
> be a locale issue (would be strange)?
Yes, there seem to be no tabs. If there were tabs, R should parse the
table correctly, I guess.
(BTW: My custom filter replacing tabs with spaces is still disabled,
even though I pulled from master, which includes the recent
commit 70f965535b07c03a40792237de3a970d1cb57551
Author: Nicolas Goaziou <address@hidden>
Date: Mon Jan 5 12:39:26 2015 +0100
org-table: Ignore filters and hooks in radio tables
)
>
>> data.table <- local({
>> con <- textConnection(
>> "\"A\" \"B\" \"C\"
>> \"115\" \"76\" \"60\"
>> \"124\" \"78\" \"55\"
>> \"118\" \"73\" \"65\"
>> \"114\" \"75\" \"61\"
>> \"108\" \"74\" \"82\""
>> )
>> res <- utils::read.table(
>> con,
>> header = TRUE,
>> row.names = NULL,
>> sep = "\t",
>> as.is = TRUE
>> )
>> close(con)
>> res
>> })
>> names(data.table)
>> head(data.table)
>
> One solution would be to insert (instead of the tab character) "\t" to
> separate the fields?
>
> You could try and modify the ob-R-transfer-variable-table-with-header -
> From the help:
>
> ,----
> | ob-R-transfer-variable-table-with-header is a variable defined in `ob-R.el'.
> | Its value is
> | "%s <- local({\n con <- textConnection(\n %S\n )\n res <-
> | utils::read.table(\n con,\n header = %s,\n row.names = %s,\n sep =
> | \"\\t\",\n as.is = TRUE\n )\n close(con)\n res\n })"
> |
> | This variable may be risky if used as a file-local variable.
> |
> | Documentation:
> | R code used to transfer a table defined as a variable from org to R.
> |
> | This function is used when the table contains a header.
> `----
>
> This is passed to the (format) function and one might be able to change
> something there.
Thanks for the hint. Do I assume correctly, that this variable is used
when the code block is evaluated as well? In that case, I am reluctant
to change it, as the evaluation now works. The surprising thing is the
different behaviour for preview and evaluation.
I am extremely tight with my time right now, so that I won't be able to
do much experimentation/investigation right now, I am afraid. But I
will try to still be helpful...
Thanks,
Andreas
>
> Cheers,
>
> Rainer
>
>>
>>
>> And finally, here is my R session, when I step through the code:
>>
>>
>> R version 3.1.2 (2014-10-31) -- "Pumpkin Helmet"
>> Copyright (C) 2014 The R Foundation for Statistical Computing
>> Platform: x86_64-apple-darwin10.8.0 (64-bit)
>>
>> R is free software and comes with ABSOLUTELY NO WARRANTY.
>> You are welcome to redistribute it under certain conditions.
>> Type 'license()' or 'licence()' for distribution details.
>>
>> Natural language support but running in an English locale
>>
>> R is a collaborative project with many contributors.
>> Type 'contributors()' for more information and
>> 'citation()' on how to cite R or R packages in publications.
>>
>> Type 'demo()' for some demos, 'help()' for on-line help, or
>> 'help.start()' for an HTML browser interface to help.
>> Type 'q()' to quit R.
>>
>>> > options(STERM='iESS', str.dendrogram.last="'", editor='emacsclient',
>>> > show.error.locations=TRUE)
>>> data.table <- local({
>> + con <- textConnection(
>> + "\"A\" \"B\" \"C\"
>> + \"115\" \"76\" \"60\"
>> + \"124\" \"78\" \"55\"
>> + \"118\" \"73\" \"65\"
>> + \"114\" \"75\" \"61\"
>> + \"108\" \"74\" \"82\""
>> + )
>> + res <- utils::read.table(
>> + con,
>> + header = TRUE,
>> + row.names = NULL,
>> + sep = "\t",
>> + as.is = TRUE
>> + )
>> + close(con)
>> + res
>> + })
>>> names(data.table)
>> [1] "A...B...C"
>>> head(data.table)
>> A...B...C
>> 1 115 76 60
>> 2 124 78 55
>> 3 118 73 65
>> 4 114 75 61
>> 5 108 74 82
>>
>>
>> Regards,
>> Andreas
>>
>>
>>
- Re: [O] org tables into R?, (continued)
- Re: [O] org tables into R?, Vikas Rawal, 2015/01/02
- Re: [O] org tables into R?, Andreas Leha, 2015/01/04
- Re: [O] org tables into R?, Aaron Ecay, 2015/01/04
- Re: [O] org tables into R?, Nicolas Goaziou, 2015/01/05
- Re: [O] org tables into R?, Aaron Ecay, 2015/01/05
- Re: [O] org tables into R?, Nicolas Goaziou, 2015/01/06
- Re: [O] org tables into R?, Aaron Ecay, 2015/01/06
- Re: [O] org tables into R?, Nicolas Goaziou, 2015/01/06
- Re: [O] org tables into R?, Andreas Leha, 2015/01/06
- Re: [O] org tables into R?, Rainer M Krug, 2015/01/06
- Re: [O] org tables into R?,
Andreas Leha <=
- Re: [O] org tables into R?, Rainer M Krug, 2015/01/06
- Re: [O] org tables into R?, Aaron Ecay, 2015/01/06
- Re: [O] org tables into R?, Rainer M Krug, 2015/01/07
Re: [O] org tables into R?, Michael Gauland, 2015/01/03