gpt4 book ai didi

r - dplyr concat列存储在变量中(变异和非标准评估)

转载 作者:行者123 更新时间:2023-12-01 13:53:15 25 4
gpt4 key购买 nike

我想基于变量cols_to_concat连接数据框中的任意数量的列

df <- dplyr::data_frame(a = letters[1:3], b = letters[4:6], c = letters[7:9])
cols_to_concat = c("a", "b", "c")

为了使用 cols_to_concat的特定值来达到预期的结果,我可以这样做:
df %>% 
dplyr::mutate(concat = paste0(a, b, c))

但是我需要使用如下语法将其概括化
# (DOES NOT WORK)
df %>%
dplyr::mutate(concat = paste0(cols))

如果合适,我想使用dplyr 0.7.0的新 NSE approach,但找不到正确的语法。

最佳答案

您可以从syms尝试rlang:

library(dplyr)
packageVersion('dplyr')
#[1] ‘0.7.0’
df <- dplyr::data_frame(a = letters[1:3], b = letters[4:6], c = letters[7:9])
cols_to_concat = c("a", "b", "c")

library(rlang)
cols_quo <- syms(cols_to_concat)
df %>% mutate(concat = paste0(!!!cols_quo))

# or
df %>% mutate(concat = paste0(!!!syms(cols_to_concat)))

# # A tibble: 3 x 4
# a b c concat
# <chr> <chr> <chr> <chr>
# 1 a d g adg
# 2 b e h beh
# 3 c f i cfi

关于r - dplyr concat列存储在变量中(变异和非标准评估),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44613279/

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