使用变量R dplyr设置数据帧的标签



我有一个数据帧,我想在其中更改标签,如下所示:

library(labelled)
tmp <- diamonds %>% mutate(color = as.character(color)) %>%
set_value_labels(color = c(E = "white", I = "Red", J = "Black"))

这是可行的,但我想以编程方式构建标签集(在我的情况下,是从数据库表中(。例如:

cols <- c("White", "Red", "Black")
letters <- c("E", "I", "J")

# create the labels vector
new_labels <- c()
for(x in 1:3){
new_labels <- c(new_labels, paste(letters[x], "=", cols[x]))
}

tmp <- diamonds %>% mutate(color = as.character(color)) %>%
set_value_labels(color = new_labels)

错误:labels必须有名称。

如何以set_values_labels能够理解的格式构建new_labels向量?或者不使用库(标记(

您可以使用setNames创建命名向量,并将其传递给set_value_labels

library(dplyr)
library(labelled)
cols <- c("White", "Red", "Black")
letters <- c("E", "I", "J")

tmp <- diamonds %>% 
mutate(color = as.character(color)) %>%
set_value_labels(color = setNames(cols, letters)) 

最新更新