R data.table:将字符串作为表达式计算在j中

R data.table:将字符串作为表达式计算在j中,r,data.table,R,Data.table,我想写一个有两个输入的函数:一个新变量的名称和一个数学表达式。这两个参数都是字符串 此函数应采用数据表,并添加指定的新变量,该变量应为给定数学表达式的结果 这是我尝试的一个最简单的工作示例: library(data.table) df <- data.table(A = 1:10, B = 1:10) new_var <- "C" expression <- "A + B" example_fun <- function(new_var, expression)

我想写一个有两个输入的函数:一个新变量的名称和一个数学表达式。这两个参数都是字符串

此函数应采用
数据表
,并添加指定的新变量,该变量应为给定数学表达式的结果

这是我尝试的一个最简单的工作示例:

library(data.table)

df <- data.table(A = 1:10, B = 1:10)
new_var <- "C"
expression <- "A + B"


example_fun <- function(new_var, expression) {
  DT[, (new_var) := expression]
}

example_fun(new_var, expression)

> DT
     A  B     C
 1:  1  1 A + B
 2:  2  2 A + B
 3:  3  3 A + B
 4:  4  4 A + B
 5:  5  5 A + B
 6:  6  6 A + B
 7:  7  7 A + B
 8:  8  8 A + B
 9:  9  9 A + B
10: 10 10 A + B
库(data.table)

df这是一个经典,以前被问过几十次甚至几百次。您正在查找
parse/eval
df[,(新变量):=eval(parse(text=…expression))]
。这种结构通常是不鼓励的,通常意味着你应该重新思考你正在尝试做什么。谢谢你的快速回复。你能给出一个提示,说明为什么不鼓励这样做吗?我需要从data.frame的字符列中提取表达式,我没有其他想法。可能需要看一下关于
parse
eval
。这是一个很好的起点。我没有检查你之前的问题:-)