emacs-orgmode
[Top][All Lists]
Advanced

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

Re: empty/nil in table cells


From: Mario Frasca
Subject: Re: empty/nil in table cells
Date: Thu, 9 Jul 2020 17:06:16 -0500
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0

I think we really need a bug-tracking mechanism, you know?

see attachment

On 09/07/2020 16:59, Nicolas Goaziou wrote:
Hello,

Mario Frasca <mario@anche.no> writes:

I've been experimenting with associating the empty cell with the value
nil,
Where?

both ways,
What do you mean?

and it simplifies a lot writing functions.
How so?

also, I've removed the error generation when reading from outside the
table (instead of giving up with a user-error, I now get a nil).
Would you mind explaining?

it works for me, and I don't see counterindications.  is it
worthwhile, offering you the patch?
Thank you. It may be so, but I may be missing some context.

Regards,
--- Begin Message --- Subject: Re: bug: Row descriptor <...> leads outside table Date: Fri, 3 Jul 2020 09:55:27 -0500 User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0

sorry for the messed up setting of the table, trying again, and adding a web-paste

http://ix.io/2qMC

|  date | measure | running avg |
|-------+---------+-------------|
| 01-27 |     604 |             |
| 01-28 |     314 |             |
| 01-29 |     636 |             |
| 01-30 |     305 |             |
| 01-31 |     760 |             |
| 02-01 |     531 |             |
| 02-02 |     331 |      497.29 |
| 02-03 |      77 |      422.00 |
| 02-04 |     621 |      465.86 |
| 02-05 |     406 |      433.00 |
| 02-06 |     621 |      478.14 |
| 02-07 |     975 |      508.86 |
| 02-08 |     252 |      469.00 |
| 02-09 |     794 |      535.14 |
| 02-10 |      36 |      529.29 |
#+TBLFM: $3='(unless (> @# 7) "skipped")
#+TBLFM: $3='(when (> @# 7) (/ (apply #'+ '(@-6$2..$2)) 7.0));N%0.2f
#+TBLFM: $3='(/ (apply #'+ '(@-6$2..$2)) 7.0);N%0.2f::@2$3='(string)::@3$3='(string)::@4$3='(string)::@5$3='(string)::@6$3='(string)::@7$3='(string)

On 03/07/2020 09:53, Mario Frasca wrote:
hi again,

I haven't found how to solve this, short of removing the evaluation of `user-error' from the org-table.el code, or stuffing my TBLFM line with field formulas.

a very simple use case: three columns: the date, a daily measurement, and a running 4-days average.

|  date | measure | running avg ||-------+---------+-------------|| 01-27 |     604 | skipped     || 01-28 |     314 | skipped     || 01-29 |     636 | skipped     || 01-30 |     305 | skipped     || 01-31 |     760 | skipped     || 02-01 |     531 | skipped     || 02-02 |     331 | nil         || 02-03 |      77 | nil         || 02-04 |     621 | nil         || 02-05 |     406 | nil         || 02-06 |     621 | nil         || 02-07 |     975 | nil         || 02-08 |     252 | nil         || 02-09 |     794 | nil         || 02-10 |      36 | nil         |#+TBLFM: $3='(unless (> @# 7) "skipped") #+TBLFM: $3='(when (> @# 7) (/ (apply #'+ '(@-6$2..$2)) 7.0));N%0.2f #+TBLFM: $3='(/ (apply #'+ '(@-6$2..$2)) 7.0);N%0.2f::@2$3='(string)::@3$3='(string)::@4$3='(string)::@5$3='(string)::@6$3='(string)::@7$3='(string)

the first TBLFM shows you which cells I'm skipping, that is, where I'm not applying the @-6 reference.  the status of the table results from evaluation of that TBLFM line.

the second TBLFM line skips all @-6 references, but still fails with the message

user-error: Row descriptor -6 leads outside table

the third TBLFM line "solves" the problem, in one of the ugliestests ways.

how would you people approach this?


On 29/06/2020 12:03, Mario Frasca wrote:
Hi,

I need some help understanding how to use org-mode/org-table for references leading outside my table.

I have a series of daily figures, and I am computing the series of running sums.  column one is the daily data, column two is the running sum of the preceding 14 values from column 1.

http://ix.io/2qu7

problem is the @-13$1 reference in the function for the second column: it hits a software-generated "user-error: Row descriptor -13 leads outside table".

this happens even if the formula says (if (> @# 13) (apply '+ '(@-13$1..$1)) 0), that is, even if the formula is not evaluated on the cells where the reference does indeed lead out of the table.

this happens around line 2809 of org-table.el, inside org-table--row-type

I've tried to catch the user-error with a `condition-case', but even there, the error seems to happen before evaluation.

I've replaced the `(user-error)' function with a `nil', and it works for me, but that's a very rough measure I'm afraid.


--- End Message ---

reply via email to

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