代码之家  ›  专栏  ›  技术社区  ›  ClimateUnboxed

如何在R中使用带剪切功能的重复标签?

r
  •  5
  • ClimateUnboxed  · 技术社区  · 8 年前

    v<-c(3,2,9,3,4,10,-4) # example vector
    c<-cut(v,breaks=c(-10,0,3,8,Inf),labels=c("blue","yellow","green","orange"))
    c
    [1] yellow yellow orange yellow green  orange blue  
    Levels: blue yellow green orange
    

    我的问题是,我现在想投影一系列数字来给重复使用颜色的“标签”上色,例如获得条纹效果:

    c<-cut(v,breaks=c(-10,0,3,8,Inf),labels=c("blue","green","blue","green"))
    

    但这给了我一个错误:

    factor level [3] is duplicated
    

    我预料到了

    1 回复  |  直到 8 年前
        1
  •  7
  •   Axeman    8 年前

    您可以强制为数字,使其不再是一个因子,然后使用索引来匹配您的颜色:

    v <- c(3,2,9,3,4,10,-4)
    C <- cut(v, breaks = c(-10,0,3,8,Inf))
    
    C <- as.numeric(C)
    c("blue","green","blue","green")[C]
    
    [1] "green" "green" "green" "green" "blue"  "green" "blue"