根据阅读dplyr::pull
的{{3}}并查看示例,我的印象是var
参数应该是“裸列名称”。例如:
dplyr::pull(mtcars, cyl)
[1] 6 6 4 6 8 6 8 4 4 6 6 8 8 8 8 8 8 4 4 4 4 8 8 8 8 4 4 4 8 6 8 4
但是,我刚才意识到引用的列名也适用:
dplyr::pull(mtcars, "cyl")
[1] 6 6 4 6 8 6 8 4 4 6 6 8 8 8 8 8 8 4 4 4 4 8 8 8 8 4 4 4 8 6 8 4
我很好奇这两种风格之间是否存在差异。此外,使用第二个选项进行非交互式使用(例如R包开发)是否有任何缺点。
我在这些例子中使用了dplyr的0.7.4版本。
由于
答案 0 :(得分:2)
pull
调用select_var
,使用quasiquotation评估或不评估参数,并最终从数据中返回列名。这允许以灵活的方式指定列,以支持交互和编程使用。
a <- "cyl"
select_var(names(mtcars), a)
[1] "cyl"
pull(mtcars,a)
[1] 6 6 4 6 8 6 8 4 4 6 6 8 8 8 8 8 8 4 4 4 4 8 8 8 8 4 4 4 8 6 8 4