gpt4 book ai didi

r - 使用查找数据框以编程方式重命名数据框列

转载 作者:行者123 更新时间:2023-12-03 02:33:32 33 4
gpt4 key购买 nike

使用查找数据框批量重命名列的最佳方法是什么?

我可以将其作为管道的一部分吗?

library(tidyverse)

df <- data_frame(
a = seq(1, 10)
, b = seq(10, 1)
, c = rep(1, 10)
)

df_lookup <- data_frame(
old_name = c("b", "c", "a")
, new_name = c("y", "z", "x")
)

我知道如何手动完成

df %>% 
rename(x = a
, y = b
, z = c)

我正在寻找 tidyverse/dplyr 包中的解决方案。

最佳答案

使用rlang;首先使用syms建立一个名称列表,然后将rename的参数与UQS!!!拼接起来> 运算符:

library(rlang); library(dplyr)

df %>% rename(!!!syms(with(df_lookup, setNames(old_name, new_name))))

# A tibble: 10 x 3
# x y z
# <int> <int> <dbl>
# 1 1 10 1
# 2 2 9 1
# 3 3 8 1
# 4 4 7 1
# 5 5 6 1
# 6 6 5 1
# 7 7 4 1
# 8 8 3 1
# 9 9 2 1
#10 10 1 1

关于r - 使用查找数据框以编程方式重命名数据框列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45717387/

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