Re: [R example for org-table with ifs] (was: [External] : Re: export org table to other formats (gnumeric or scalc or xlsx))

2021-07-07 Thread Greg Minshall
Uwe,

well, *i* no longer remember how to read calc-like expressions.  and,
i'm a notoriously poor R coders.  assuredly the following is not doing
what you want, but possibly you'll get the idea.  (if 102.01 is, indeed,
the correct answer, feel free to buy me a hot fudge sundae some day. :)

cheers, Greg

#+name: thing
| / | <>  |<> | <> |  <> |   <> | <> | <>  |
|   | | DMI G | DMNI H | ExNDM I | ExNDNM J | Result | Weight2 |
|   | Weight: | 1 |0.2 |   1 |  0.1 || 0.1 |
|---+-+---++-+--++-|
|   | User1   | 0 |  0 |  11 |0 | 10.1   | |
|---+-+---++-+--++-|
#+TBLFM: $7=if($3>10,($3-10)*@3$8,0)+ min(10,$3)*@3$3+ min(10,$4)*@3$4 + 
if($5>10,($5-10)*@3$8,0)+min(10,$5)*@3$5 +@3$6*$6;f1::

- does "@3$3" mean the third column in the third row?
  - is that the "DMNI H" column?
  - is that the "User1" row?

i replace "@3" with the last row of the input table.

#+begin_src R :var some=thing :session R :colnames yes
  ## in imported colnames, spaces are replaced with periods
  some[,"Result"] <- ifelse(some[,"DMNI.H"] > 10, (some[, "DMNI.H"] - 10.0) *
 (some[nrow(some), "Weight2"]),
0.0) +
(min(10, some[, "DMNI.H"]) * some[nrow(some), "ExNDM.I"]) +
(ifelse(some[, "ExNDNM.J"] > 10, some[, "ExNDNM.J"] - 10 * some[nrow(some), 
"DMNI.H"], 0)) +
(min(10, some[, "ExNDNM.J"]) * some[nrow(some), "ExNDNM.J"]) +
(some[nrow(some), "Result"] * some[, "Result"])
#+end_src

#+RESULTS:
|  x |
||
||
| 102.01 |



[R example for org-table with ifs] (was: [External] : Re: export org table to other formats (gnumeric or scalc or xlsx))

2021-07-07 Thread Uwe Brauer
>>> "ESF" == Eric S Fraga  writes:

> On Monday,  5 Jul 2021 at 16:48, Uwe Brauer wrote:
>> Well I do that myself basically, but my main problem is now: *formulas*, I
>> have to collaborate with colleagues using excel and I have to work with
>> their formulas in a way or another. 

> Tell them to use R... ;-)

Out of curiosity do you have an example of using R to generate stuff
like this.


#+begin_src elisp
| / | <>  |<> | <> |  <> |   <> | <> | <>  |
|   | | DMI G | DMNI H | ExNDM I | ExNDNM J | Result | Weight2 |
|   | Weight: | 1 |0.2 |   1 |  0.1 || 0.1 |
|---+-+---++-+--++-|
|   | User1   | 0 |  0 |  11 |0 | 10.1   | |
|---+-+---++-+--++-|
#+TBLFM: $7=if($3>10,($3-10)*@3$8,0)+ min(10,$3)*@3$3+ min(10,$4)*@3$4 + 
if($5>10,($5-10)*@3$8,0)+min(10,$5)*@3$5 +@3$6*$6;f1::
#+end_src


smime.p7s
Description: S/MIME cryptographic signature