Mam następujący data.table
:oceny ekspresji w R data.table
> dt = data.table(expr = c("a + b", "a - b", "a * b", "a/b"), a = c(1,2,3,4), b = c(5,6,7,8))
> dt
expr a b
1: a + b 1 5
2: a - b 2 6
3: a * b 3 7
4: a/b 4 8
Moim celem jest uzyskanie następujących data.table
:
> dt
expr a b ans
1: a + b 1 5 6
2: a - b 2 6 -4
3: a * b 3 7 21
4: a/b 4 8 0.5
Próbowałem następujące:
> dt[, ans := eval(expr)]
Error in eval(expr, envir, enclos) : object 'expr' not found
> dt[, ans := eval(parse(text = expr))]
Error in parse(text = expr) : object 'expr' not found
Każdy pomysł, jak obliczyć kolumnę ans
na podstawie wyrażenia z expr
kolumny?
programowania funkcyjnego FTW, duży + 1 –