实际上是否有一个简单的解决方案来重新排序像矢量这样的矢量 第一个元素,最后一个元素,第二个元素,第二个元素等
所以我希望c(1,2,3,4,5)
获得c(1,5,2,4,3)
。
原因是我有一个颜色调色板有16种颜色,颜色1非常类似于两种但不是颜色16.但在我的图中,颜色1着色的点接近颜色为2的颜色。
对于我的调色板,我使用了颜色冲泡器中的Set 1,并使用colorRampPalette
来计算颜色之间的颜色,因此它们有点类似。
一个解决方案就是sample(my_colors)
,但实际上我想像上面所说的那样对它们进行重新排序。
答案 0 :(得分:5)
这将满足您的需求:
a <- c(1,2,3,4,5)
b <- rbind(a,a[5:1])
c <-b [1:5]
希望这有帮助
这是fiddle
您可以使用
进行概括rbind(a,rev(a))[1:length(a)]
答案 1 :(得分:4)
这是一种简单的方法:
a<-seq(1,100)
b<-a-median(a)
names(a)=b
a<-order(-abs(b))
print(a)
[1] 1 100 2 99 3 98 4 97 5 96 6 95 7 94 8 93 9 92 10 91 11 90 12 89 13 88 14 87
[29] 15 86 16 85 17 84 18 83 19 82 20 81 21 80 22 79 23 78 24 77 25 76 26 75 27 74 28 73
[57] 29 72 30 71 31 70 32 69 33 68 34 67 35 66 36 65 37 64 38 63 39 62 40 61 41 60 42 59
[85] 43 58 44 57 45 56 46 55 47 54 48 53 49 52 50 51
来自评论:
1:来自@bgoldst:更好的(一线)方法,不涉及矢量名称:
a[order(-abs(a-median(a)))]
2 :(也来自bgoldst)处理非数字(字母顺序)值:
letters[order(-abs(seq_along(letters)-(length(letters)+1)/2))]