gpt4 book ai didi

基于向量重命名列

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

set.seed(0)
data=data.frame("V1"=sample(1:10,size=4,rep=T),
"V2"=sample(1:10,size=4,rep=T),
"V3"=sample(1:10,size=4,rep=T),
"V4"=sample(1:10,size=4,rep=T))

names = data.frame("vars"=c("V1", "V2", "V3", "V4"),
"labels"=c("whale","toast","cheese","cow"))


want=data.frame("whale"=sample(1:10,size=4,rep=T),
"toast"=sample(1:10,size=4,rep=T),
"cheese"=sample(1:10,size=4,rep=T),
"cow"=sample(1:10,size=4,rep=T))

我有数据,“数据”和包含“数据”的列名称和变量标签的数据框“名称”。

我想创建新数据“想要”,用“名称”中的变量标签替换“数据”中的变量名称请注意,但实际值不同,因为我不知道如何确保相同的采样值!

最佳答案

我们可以使用 rename_at来自 dplyr (假设 'names' 数据集中的列是 character 类)

library(dplyr)
data <- data %>%
rename_at(vars(names$vars), ~ names$labels)
data
# whale toast cheese cow
#1 9 2 1 6
#2 4 7 5 10
#3 7 2 5 7
#4 1 3 10 9

或者通过 deframe 转换为命名向量ing 然后直接匹配
names %>% 
mutate_all(as.character) %>%
deframe %>%
{set_names(data, .[names(data)])}

关于基于向量重命名列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60131993/

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