R 4.1.2版本中如何选择因子变量指定水平获取十六进制颜色码?
解决方法
方法1:直接按索引提取(最直接高效)
既然你明确知道要第1和第3个水平的颜色码,直接通过索引定位即可:
levels(df$colour)[c(1, 3)]
这样会直接返回你需要的#000000和#e31a1c两个颜色值。
方法2:利用%in%的逻辑结果筛选
如果一定要通过颜色值匹配来筛选,可以把%in%返回的逻辑向量作为索引使用:
target_cols <- c("#000000", "#e31a1c") levels(df$colour)[levels(df$colour) %in% target_cols]
%in%返回的是每个元素是否匹配目标的逻辑值(TRUE/FALSE),将这个逻辑向量放到方括号中,就能筛选出对应为TRUE的元素。
内容的提问来源于stack exchange,提问作者Spencer K
相关产品推荐
相关产品推荐

