繁体   English   中英

在R中排序带有字符和数字的向量

[英]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 )转换成numericorder它与使用该索引来排序'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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM