R:根据向量的顺序列表

时间:2015-12-02 14:24:59

标签: r list vector

假设我在R中有一个列表,如下所示:

  partei   color
1 andere #636363
2    BDP #D0B100
3    CVP #FF8B07
4    EVP #65ECEF
5    FDP #5675D6
6    glp #77E599
7  Grüne #A3DD57
8     SP #CE2929
9    SVP #428953

我想根据这个载体订购它:

ps <- c("SVP", "SP", "FDP", "CVP", "Grüne", "glp", "BDP", "andere", "EVP")

我尝试使用以下代码订购上面的列表:

colors$partei <- factor(colors$partei, levels = ps)

但是,当我想以正确的顺序从列表中获取颜色时,这没有任何效果。我使用此代码提取颜色的矢量:

farb <- as.vector(factor(rev(colors$color)))

我希望颜色矢量与ps矢量的顺序相同。 也许列表colors应该转换为data.frame,但我不知道如何。

1 个答案:

答案 0 :(得分:2)

怎么样

ord <- sapply(ps, function(x) which(colors$partei == x))
farb <- colors$color[ord]