gpt4 book ai didi

Rlang:如何将字符串视为符号

转载 作者:行者123 更新时间:2023-12-03 23:10:21 30 4
gpt4 key购买 nike

我再次对 rlang 的文档感到困惑和错误信息。我使用双刘海和三刘海尝试了 20 次不同的迭代,:= , quo , enquo , ensym ,以及所有其他名称不明确的 rlang 函数。

如果您感到沮丧,那是因为我每次尝试使用 rlang为了处理对象名称的变量,我遇到了同一堵墙。我错过了一些关键的东西吗?我傻吗?是rlang函数名和文档真的很差吗?

我正在尝试确定 tibble 中变量的类别.除了帮助这样做之外,如果有人能建议我如何在文档中找到答案,我将不胜感激。

require(tidyverse)
require(rlang)

x <- enframe(names(mtcars), name = NULL, value = "var") %>%
add_column(df = "mtcars")

x %>% mutate(cls = class(sym(paste0(df, "$", var))))
#> Only strings can be converted to symbols

创建于 2019-10-27 由 reprex package (v0.3.0)

最佳答案

1) 解析并评估它。

library(dplyr)
library(rlang)

x %>% rowwise %>% mutate(cls = class(eval_tidy(parse_expr(paste0(df, "$", var)))))

2) 或使用 sym来自 rlang 和 pull来自 purrr
library(dplyr)
library(purrr)
library(rlang)

x %>% rowwise %>% mutate(cls = class(pull(eval_tidy(sym(df)), var)))

3) 或基本 R 函数 get检索 df :
library(dplyr)

x %>% rowwise %>% mutate(cls = class(get(df)[[var]]))

关于Rlang:如何将字符串视为符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58582915/

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