获得没有评估的引用列表的名称

时间:2017-05-03 22:54:18

标签: r non-standard-evaluation

我有一个引用列表

quote(list(orders = .N,
           total_quantity = sum(quantity)))

(我最终在eval的{​​{1}}部分j {/ 1}}

我想要的是提取该列表的data.table而不必评估表达式,因为在正确的环境之外评估表达式会产生错误。

1 个答案:

答案 0 :(得分:4)

该列表在此时没有任何名称。它甚至不是一个清单。它是对list()功能的调用。但是,说你可以解析该函数​​调用并提取name参数。例如

x <- quote(list(orders = .N,
    total_quantity = sum(quantity)))
names(as.list(x))[-1]
# [1] "orders"         "total_quantity"

表达式上的as.list()将函数调用转换为(命名)列表而不进行评估。