[英]Reorder character based on the order of another character in R
我有一个带有两个十六进制颜色代码的字符:
[1] "#F9CF7B" "#C5D4E1"
我还有一个 dataframe,其中一个因子变量的水平是这样的:
[1] "Treated" "Placebo"
这些水平可能会改变它的顺序(这是一个闪亮的应用程序,但这不是问题的重点)所以有时我会像这样订购因素[1] "Treated" "Placebo"
,其他时候这样, [1] "Placebo" "Treated"
。 我想要的是我的十六进制颜色代码字符来相应地改变它的顺序。
所以,我会有类似的东西。
[1] "Treated" "Placebo"
-> [1] "#F9CF7B" "#C5D4E1"
和
[1] "Placebo" "Treated"
-> [1] "#C5D4E1" "#F9CF7B"
我想用这两个因素创建一个 dataframe,然后根据因素的水平重新排序整个 dataframe,并提取重新排序的十六进制代码。
但是,我想知道是否有更简单的方法来做到这一点。
一个选项是传递一个命名向量来匹配factor
的levels
nm1 <- setNames(c("#F9CF7B", "#C5D4E1"), c("Treated", "Placebo"))
v1 <- factor(sample(rep(c("Treated", "Placebo"), 3)))
nm1[levels(v1)]
Placebo Treated
"#C5D4E1" "#F9CF7B"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.