R 数字字符向量的升序

R 数字字符向量的升序,r,R,我有一个字符类型的数字向量 x = c("5","-.5","-.1",".01",".1","1","3") 有没有一种简单快捷的方法可以使用每个字符的数值对该字符向量进行排序?我找不到一个干净的方法来做这件事 例如,我想要一个函数 x <- characterOrder(x) 谢谢大家! 您可以从gtools library(gtools) mixedsort(x) #[1] "-.5" "-.1" ".01" ".1" "1" "3" "5" 您可以从gtools

我有一个字符类型的数字向量

x = c("5","-.5","-.1",".01",".1","1","3")
有没有一种简单快捷的方法可以使用每个字符的数值对该字符向量进行排序?我找不到一个干净的方法来做这件事

例如,我想要一个函数

x <- characterOrder(x) 

谢谢大家!

您可以从
gtools

library(gtools)
mixedsort(x)
#[1] "-.5" "-.1" ".01" ".1"  "1"   "3"   "5" 

您可以从
gtools

library(gtools)
mixedsort(x)
#[1] "-.5" "-.1" ".01" ".1"  "1"   "3"   "5" 

在按as.numeric值排序时,可以在base R中使用order函数和as.numeric进行此操作

x = c("5","-.5","-.1",".01",".1","1","3")
x[order(as.numeric(x))]
[1] "-.5" "-.1" ".01" ".1"  "1"   "3"   "5"  
如果要在函数中使用此选项:

characterOrder <- function(x) {
  return(x[order(as.numeric(x))])
}

characterOrder在按as.numeric值排序时,可以在base R中使用order函数和as.numeric执行此操作

x = c("5","-.5","-.1",".01",".1","1","3")
x[order(as.numeric(x))]
[1] "-.5" "-.1" ".01" ".1"  "1"   "3"   "5"  
如果要在函数中使用此选项:

characterOrder <- function(x) {
  return(x[order(as.numeric(x))])
}
字符顺序