如何按照设置的顺序命名向量变量
How to name a vector variables in order it was set
我用 RColorBrewer
创建了一个调色板,并想为有序因子向量中的颜色设置名称。我从具有 variables <- unique(df$column)
的数据框中获取变量,因此不同的列给出不同数量的变量
library(RColorBrewer)
variables <- c("PR", "PD", "C", "SD", "CR")#as example
variables <- ordered(variables, levels = c("C", "CR", "PR", "SD", "PD"))
test_pal <- brewer.pal(length(variables), "Accent"); names(test_pal) <- variables
并根据向量
中的'original'序列为颜色分配名称
> test_pal
PR PD C SD CR
"#7FC97F" "#BEAED4" "#FDC086" "#FFFF99" "#386CB0"
但我想在顺序集中,像这样:
C CR PR SD PD
"#7FC97F" "#BEAED4" "#FDC086" "#FFFF99" "#386CB0"
ordered
将创建一个有序的因子变量,但它不会对您的向量进行排序(它仅在级别中设置顺序)。分配新名称时,您必须 order
或 sort
因素(而不仅仅是级别):
names(test_pal) <- sort(variables)
#names(test_pal) <- variables[order(variables)]
# C CR PR SD PD
#"#7FC97F" "#BEAED4" "#FDC086" "#FFFF99" "#386CB0"
我用 RColorBrewer
创建了一个调色板,并想为有序因子向量中的颜色设置名称。我从具有 variables <- unique(df$column)
的数据框中获取变量,因此不同的列给出不同数量的变量
library(RColorBrewer)
variables <- c("PR", "PD", "C", "SD", "CR")#as example
variables <- ordered(variables, levels = c("C", "CR", "PR", "SD", "PD"))
test_pal <- brewer.pal(length(variables), "Accent"); names(test_pal) <- variables
并根据向量
中的'original'序列为颜色分配名称> test_pal
PR PD C SD CR
"#7FC97F" "#BEAED4" "#FDC086" "#FFFF99" "#386CB0"
但我想在顺序集中,像这样:
C CR PR SD PD
"#7FC97F" "#BEAED4" "#FDC086" "#FFFF99" "#386CB0"
ordered
将创建一个有序的因子变量,但它不会对您的向量进行排序(它仅在级别中设置顺序)。分配新名称时,您必须 order
或 sort
因素(而不仅仅是级别):
names(test_pal) <- sort(variables)
#names(test_pal) <- variables[order(variables)]
# C CR PR SD PD
#"#7FC97F" "#BEAED4" "#FDC086" "#FFFF99" "#386CB0"