如何使用 dplyr 编程语法创建和评估变量名称

编程入门 行业动态 更新时间:2024-10-17 11:32:45
本文介绍了如何使用 dplyr 编程语法创建和评估变量名称的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

限时送ChatGPT账号..

我想使用 dplyr 编程语法动态输入变量名,但是,正如许多人所描述的那样,这可能会令人困惑.

I would like to dynamically input a variable name using dplyr programming syntax, however, as many have described this can be quite confusing.

我玩过 quo/enquo 的各种组合!!等无济于事.这是我的代码的最简单形式

I've played around with various combinations of quo/enquo !! etc. to no avail. Here is the simplest form of my code

library(tidyverse)

df <- tibble(
  color1 = c("blue", "blue", "blue", "blue", "blue"),
  color2 = c("black", "black", "black", "black", "black"),
  value = 1:5
)

num <- 2

df %>%
  mutate(color3 = !!(paste0("color", num)))


#> # A tibble: 5 x 4
#>   color1 color2 value color3
#>   <chr>  <chr>  <int> <chr> 
#> 1 blue   black      1 color2
#> 2 blue   black      2 color2
#> 3 blue   black      3 color2
#> 4 blue   black      4 color2
#> 5 blue   black      5 color2

由 reprex 包 (v0.2.1) 于 2018 年 12 月 19 日创建

Created on 2018-12-19 by the reprex package (v0.2.1)

相反,我想评估引用的输入.

Instead I would like to evaluate the quoted input.

#> # A tibble: 5 x 4
#>   color1 color2 value color3
#>   <chr>  <chr>  <int> <chr> 
#> 1 blue   black      1 black 
#> 2 blue   black      2 black 
#> 3 blue   black      3 black 
#> 4 blue   black      4 black 
#> 5 blue   black      5 black

推荐答案

我们可以使用 rlang 中的 sym 将字符串转换为符号,然后计算 (!!)

We can use sym from rlang to convert the string to symbol and then evaluate (!!)

library(dplyr)
df %>%
   mutate(color3 = !!(rlang::sym(paste0("color", num))))
# A tibble: 5 x 4
#  color1 color2 value color3
#  <chr>  <chr>  <int> <chr> 
#1 blue   black      1 black 
#2 blue   black      2 black 
#3 blue   black      3 black 
#4 blue   black      4 black 
#5 blue   black      5 black 

这篇关于如何使用 dplyr 编程语法创建和评估变量名称的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

更多推荐

[db:关键词]

本文发布于:2023-04-30 13:36:05,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1394427.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:如何使用   变量   语法   名称   dplyr

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!