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 |