对包含字母和数字的 R 中的字符向量进行排序



我有一列数据框,Game,由以下内容组成:(无引号(

"Euro Round 1 West"
"Euro Round 2 Broncos"        
"Euro Round 3 Tigers"      
"Euro Round 4 Tigers"      
"Euro Round 5 Broncos"       
"Euro Round 6 West"     
"Premier12 Round 1 Eagles"  
"Premier12 Round 10 Mac"   
"Premier12 Round 11 Cats"  
"Premier12 Round 12 Owls"  
"Premier12 Round 13 Devils"   
"Premier12 Round 14 Zebras"     
"Premier12 Round 15 Cats"   
"Premier12 Round 16 Zebras"     
"Premier12 Round 17 Owls" 
"Premier12 Round 2 Eagles" 
 ...

我希望数据帧按此列排序。

首先按字母顺序排列"欧元"或"Premier12",然后按数字顺序按"Round _"排列

但是,正如您在第二部分上面看到的,即数字顺序如下:1,10,11,12,13,14,15,16,17,2,3,4,...

我该如何解决这个问题?

另外,是否可以拥有这个,但也更改字符顺序并添加括号,如下所示:

"West (Euro Round 1)"
"Broncos (Euro Round 2)"        
"Tigers (Euro Round 3)" 
"Tigers (Euro Round 4)"      
"Broncos (Euro Round 5)"       
"West (Euro Round 6)"     
"Eagles (Premier12 Round 1)"  
"Eagles (Premier12 Round 2)"   
"Devils (Premier12 Round 3)"  
... 

否则:

"West, Euro Round 1"
"Broncos, Euro Round 2"        
"Tigers, Euro Round 3" 
"Tigers, Euro Round 4"      
"Broncos, Euro Round 5"       
"West, Euro Round 6"     
"Eagles, Premier12 Round 1"  
"Eagles, Premier12 Round 2"   
"Devils, Premier12 Round 3"  
... 

谢谢

我已经阅读了如何在 R 中包含字母和数字的元素中对字符向量进行排序?,这与我的问题类似,但我无法弄清楚

首先列出所有的名字

mylist <- list()

将名称放入列表中

mylist <- "Premier12 Round 16 Zebras" 

您正在寻找的函数是 strsplit

name_string <- strsplit(mylist[1], " ")

以上将在空格处拆分您的名字。

只需在每个向量中选择第三个单词即可获得数字。

name_string[3]

循环遍历您的列表。

创建空数据帧

mydata <- data.frame()
rownames(mydata) <- c(1:20)

循环时将每个名称存储在其相应的行名中

strsplit相反的是 paste0() . 这是您可以插入括号的地方

相关内容

  • 没有找到相关文章

最新更新