0

我有一个引用列表

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

(我最终evalja 的一部分data.table

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

4

1 回答 1

4

该列表当时没有任何名称。它甚至不是一个列表。这是对list()函数的调用。但这就是说您可以解析该函数​​调用并提取名称参数。例如

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

表达式上的那个as.list()将函数调用转换为(命名的)列表而无需评估。

于 2017-05-03T23:55:37.417 回答