emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Orgmode] [org-babel] Feature request: Get a scalar for "data=examp


From: Darlan Cavalcante Moreira
Subject: Re: [Orgmode] [org-babel] Feature request: Get a scalar for "data=example-table[0, 1]"
Date: Wed, 21 Apr 2010 21:08:50 +0200

Thank you Eric,
That was much faster then I had expected. :)

It works perfectly now.

Regarding the hlines, I find more intuitive not counting them for indexing,
since this is how table formulas work in org, but I'm OK with whatever
solution you and Dan come up with.

At last, after loading message.el I can now use
message-mark-inserted-region, which is much better than boxquote-region for
code snippets.

Thank you again,
Darlan

2010/4/21 Eric Schulte <address@hidden>:
> Hi Darlan,
>
> Darlan Cavalcante Moreira <address@hidden> writes:
>
>> In the org-babel documentation we see that one can pass a single element
>> from a table to a babel source block with
>> ,----
>> ! :var data=example-table[0,1]
>> `----
>>
>> I assumed that I would get a scalar value, but it seems that I still get a
>> table (but with only one element). For instance, if I have the table below
>>
>> #+TBLNAME: MyTable
>>  |   X |  Y |
>>  |-----+----|
>>  |   0 |  0 |
>>  |   1 |  1 |
>>  |   2 |  4 |
>>  |   3 |  9 |
>>  |   4 | 16 |
>>  |   5 | 25 |
>>  |-----+----|
>>  | Sum | 55 |
>>  #+TBLFM: $2=$1*$1::@8$2=vsum(@address@hidden)
>>
>> then the code in python to print the value of sum returns
>>
>> ,----
>> ! #+begin_src python :var sum=MyTable[9,1] :results output :exports none
>> !    print sum
>> ! #+end_src
>> !
>> ! #+results:
>> ! : [[55]]
>> `----
>>
>> but I would expect to get only 55, since I'm getting a specific element in
>> MyTable and not a sub-table.
>>
>
> I see.  Yes I agree it would be more intuitive if we convert trivial
> lists to scalars.  I'm pushing up this change to the indexing behavior,
> thanks for the suggestion!
>
> Now your example above behaves as follows...
>
> --8<---------------cut here---------------start------------->8---
> #+TBLNAME: MyTable
>  |   X |  Y |
>  |-----+----|
>  |   0 |  0 |
>  |   1 |  1 |
>  |   2 |  4 |
>  |   3 |  9 |
>  |   4 | 16 |
>  |   5 | 25 |
>  |-----+----|
>  | Sum | 55 |
>  #+TBLFM: $2=$1*$1::@8$2=vsum(@address@hidden)
>
> #+begin_src python :var sum=MyTable[2:7,1] :exports none
>   return sum
> #+end_src
>
> #+results:
> | 0 | 1 | 4 | 9 | 16 | 25 |
>
> #+begin_src python :var sum=MyTable[9,1] :exports none
>   return sum
> #+end_src
>
> #+results:
> : 55
> --8<---------------cut here---------------end--------------->8---
>
>>
>> In addition, the hlines are being counted. Is this intended behaviour?
>
> Unfortunately there is no clean way (at least that I am aware of) to
> handle 'hlines *before* the table indexing code has a crack at parsing
> the table.  I suppose we could simply strip out all hlines whenever a
> table is being indexed, but I'm not sure if that's always desirable...
>
>> I remember that there is a thread in the list about keeping the hlines
>> in resulting tables, but even if that is desirable, counting the
>> hlines as lines will result in troubles (python give me an error if I
>> use sum=MyTable[9,1], for instance).
>>
>
> This is a more general problem.  As it happens Dan and I are currently
> testing an update which will introduce some new header arguments to deal
> with this issue exactly .  It's still a little too green to inflict on a
> wider audience, but trust me when I say that relief is on the horizon.
>
>>
>>
>> I was trying to plot the table with Org-Babel and Gnuplot with the code below
>>
>> #+begin_src gnuplot :var data=MyTable[1:-2] :var sum=MyTable[7,1]
>> :results silent :exports none
>>   reset
>>   set label "Sum: %.0f",sum at graph 0.03, graph 0.93
>>   plot data with linespoints
>> #+end_src
>>
>> but the sum variable will have the value of a temporary file with the
>> element [7,1] instead of the actual value. I could use ":var sum=55" but
>> then I would have to change this whenever I change the table.
>>
>
> For a short email this is packed with probing questions. :)
>
> This has to do with passing literal values to gnuplot (as opposed to
> tables).  When gnuplot receives a vector it drops it to a table and
> replaces the variable with the table (so gnuplot can pull the values
> out), when it receives a scalar it just drops the scalar value directly
> into the code.
>
> The above indexing fix should also fix this problem.
>
> Best -- Eric
>
>>
>>
>> - Darlan
>>
>> ps: How do I do that "cute here start/end"? Is it gnus functionality (I use
>> wanderlust) or it is more general?
>>
>
> The function is called `message-mark-inserted-region' and is part of
> message.el which I believe is distributed with Emacs (can't be sure).
>
>>
>>
>> _______________________________________________
>> Emacs-orgmode mailing list
>> Please use `Reply All' to send replies to the list.
>> address@hidden
>> http://lists.gnu.org/mailman/listinfo/emacs-orgmode
>



-- 
Darlan Cavalcante Moreira

"SDR4all, a new way of teaching telecommunications: http://www.sdr4all.com/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]