gpt4 book ai didi

r - 使用 rlang 从向量中获取不带引号的变量名

转载 作者:行者123 更新时间:2023-12-02 08:01:12 24 4
gpt4 key购买 nike

我正在构建一个函数,我希望用户能够为其传递未加引号的变量。稍后,在准备输出时,我将需要这些变量的名称作为字符串。

如果每个参数只携带一个变量,这没有问题。我可以使用 deparse(substitute(x))rlang::as_name(rlang::enquo(x)) 来获取名称(后者可能是更好的方法)。但是,如果我让它们使用 c() 在一个参数中传递多个变量,我该怎么做呢?

到目前为止,在阅读了一大堆关于 quosures 等的内容之后,我想出如何做到这一点的唯一方法是 names(dplyr::select(data,{{x}})) 但我无法想象这是执行此操作的正确方法。

nameprinter <- function(x, manynames, onename) {
manynames <- names(dplyr::select(x, {{manynames}}))
onename <- rlang::as_name(rlang::enquo(onename))

c(manynames,onename)
}

df <- data.frame(a=1:10,b=1:10,c=1:10)

nameprinter(df,c(a,b),c)
# [1] "a" "b" "c"

manynames 中获取传递的变量名称的方法有什么比我在这里更好的方法?谢谢。

最佳答案

实际上已经有它的功能。我们可以使用vars_select

tidyselect::vars_select(names(df), c(a,b), c)
# a b c
#"a" "b" "c"

tidyselect::vars_select(names(df), a, b)
# a b
# "a" "b"

关于r - 使用 rlang 从向量中获取不带引号的变量名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57213433/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com