我有一个数据帧,我想在其中更改标签,如下所示:
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))