gpt4 book ai didi

r - 在 `dplyr` 中操作动态创建的变量名

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

我正在 lapply 表达式中创建一组 tibbles,稍后将被合并。我需要动态创建变量名。遵循 this question 中的建议和 this ,我创建了这个最小的例子:

library(tidyverse)

name_v1 <- "first_variable"
name_v2 <- "second_variable"
name_v3 <- "third_variable"

tibble(
!!name_v1 := c(1, 2),
!!name_v2 := c(3, 4)
)

这显然给出了所需的输出。但是,我需要使用这两个创建第三个变量。由于我“不知道”这些变量的名称,因此我需要引用动态创建的变量。我试过了:

tibble(
!!name_v1 := c(1, 2),
!!name_v2 := c(3, 4),
!!name_v3 := !!name_v1 / !!name_v2
)
tibble(
!!name_v1 := c(1, 2),
!!name_v2 := c(3, 4)
) %>%
mutate(
!!name_v3 := !!name_v1 / !!name_v2
)

tibble(
!!name_v1 := c(1, 2),
!!name_v2 := c(3, 4),
!!name_v3 := name_v1 / name_v2
)

但是这三个都给出了错误信息。如何访问和操作这些新创建的变量?

最佳答案

你需要sym:

tibble(
!!name_v1 := c(1, 2),
!!name_v2 := c(3, 4),
!!name_v3 := !!sym(name_v1) / !!sym(name_v2))
)

# A tibble: 2 x 3
# first_variable second_variable third_variable
# <dbl> <dbl> <dbl>
# 1 1 3 0.333
# 2 2 4 0.5

关于r - 在 `dplyr` 中操作动态创建的变量名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62325662/

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