【发布时间】:2014-03-13 10:17:59
【问题描述】:
我不确定我是否在这里犯了错误(使用eval(parse(...)) 的危险),但在这里我尝试在更新data.table 列时使用eval(parse(...)),这会产生错误。下面是我的代码。
require(data.table)
# Loading required package: data.table
# data.table 1.9.2 For help type: help("data.table")
DT<-data.table(x=seq(1,10,1),
y=seq(2,20,2))
DT[,y:=y*eval(parse(text="1*2"))] #Doesn't work
# Error in y * expression(1 * 2) : non-numeric argument to binary operator
variable <- eval(parse(text="1*2"))
DT[,y:=y*variable] #Works
DT
# x y
# 1: 1 4
# 2: 2 8
# 3: 3 12
# 4: 4 16
# 5: 5 20
# 6: 6 24
# 7: 7 28
# 8: 8 32
# 9: 9 36
#10: 10 40
【问题讨论】:
-
谢谢。已提交bug #5423。
标签: r data.table