通过匹配字符向量中值的位置索引来替换整数向量的值

时间:2013-10-28 05:54:10

标签: r

我知道这很简单,但我无法通过搜索找到解决方案。

我有一个整数矩阵,其整数值来自1:n(通过将一些因子转换为索引而创建)。我希望将这些值与n颜色的矢量相匹配,以十六进制字符串值(使用scales包生成)给出。

Y <- sample(1:7, 20, replace=TRUE)  # for example
classcols <- c("#F8766D", "#C49A00", "#53B400", "#00C094", "#00B6EB", "#A58AFF", 
"#FB61D7")
# manually replace:
Y[Y==1] <- classcols[1]

我的摄取速度有点慢,除了上面的手动操作外无法解决这个问题。原因可能表明我是多么愚蠢:

plot(X, col=Y)  # X has same shape as Y. I want to control the colours a bit more.

1 个答案:

答案 0 :(得分:1)

听起来好像你只是想这样做:

classcols[Y]
#  [1] "#C49A00" "#53B400" "#00B6EB" "#FB61D7" "#C49A00" "#FB61D7" "#FB61D7" "#00B6EB"
#  [9] "#00B6EB" "#F8766D" "#C49A00" "#C49A00" "#00B6EB" "#53B400" "#A58AFF" "#00C094"
# [17] "#A58AFF" "#FB61D7" "#53B400" "#A58AFF"

在这里,我刚刚使用“Y”的值来索引“classcols”中的值。当然,您可以根据需要将输出重新分配给另一个矢量。