假设我在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,但我不知道如何。
答案 0 :(得分:2)
怎么样
ord <- sapply(ps, function(x) which(colors$partei == x))
farb <- colors$color[ord]