我在这里错过了什么?
d = data.table(a = 1:5)
d[, a] # 1 2 3 4 5
d[, sum(a)] # 15
d[, eval(quote(a))] # 1 2 3 4 5
d[, sum(eval(quote(a)))] # 15
quoted_a = quote(a)
d[, eval(quoted_a)] # 1 2 3 4 5
d[, sum(eval(quoted_a))] # Error in eval(expr, envir, enclos) : object 'a' not found
Run Code Online (Sandbox Code Playgroud)
到底是怎么回事?我跑R 2.15.0和data.table 1.8.9.
这里更好的意思是更快或更容易阅读/更短的语法,或者它也可能意味着命令甚至不可行data.table.
我不plyr经常使用,想知道我是否应该这样做.因为我不使用它了很多,唯一的例子,我能想出的rbind.fill是,据我所知没有一个data.table模拟和我见过未便每隔例如两个正在做plyr和data.table,后者是更快,更容易阅读/更紧凑.