[英]Sort vector with character and number in R
我想要排序矢量
m = c(1,“<4”,5,7,“<12”,15,18,“<21”,“<25”,27)n = c(2,“<4”,8,17 ,20,25,34, “<35”,40,43)
仅按数字排序
输出如(1,2,“<4”,“<4”,5,7,8,......,<35,40,43)
我在gtools库中尝试过mixedsort,但它不起作用。
并且,是否有任何函数我标记每个元素来自哪个向量?
例如,0表示矢量m的数字,1表示矢量n的数字
得到像(0,1,0,1,0,0,1,...,1,1,1)的输出
谢谢
我们设置names
与“0”和“1”,它串连于单个的“m”和“n”个vector
,并order
通过(使用新矢量提取数字部分gsub
)转换成numeric
, order
它与使用该索引来排序'n1'。
n1 <- c(setNames(m, rep(0, length(m))),setNames(n, rep(1, length(n))))
r1 <- n1[order(as.numeric(gsub("\\D+", "", n1)))]
as.vector(r1)
#[1] "1" "2" "<4" "<4" "5" "7" "8" "<12" "15" "17" "18" "20"
#[13] "<21" "<25" "25" "27" "34" "<35" "40" "43"
as.integer(names(r1))
#[1] 0 1 0 1 0 0 1 0 0 1 0 1 0 0 1 0 1 1 1 1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.