R 如何通过删除名称开头的数字按字母顺序对数据进行排序

R 如何通过删除名称开头的数字按字母顺序对数据进行排序,r,gsub,R,Gsub,我试图按字母顺序对这些州名进行排序,同时将数字保留在州名的左侧。我目前还不知道该怎么做 我尝试过使用各种形式的gsub,试图在排序之前删除数字,但没有成功 这是具有以下状态的数据集: print(StateRankings) # [1] "1. Arizona" "10. Missouri" "11. Tennessee" "12. Florida" # [5] "13. West Virginia" "14. Kentucky"

我试图按字母顺序对这些州名进行排序,同时将数字保留在州名的左侧。我目前还不知道该怎么做

我尝试过使用各种形式的
gsub
,试图在排序之前删除数字,但没有成功

这是具有以下状态的数据集:

print(StateRankings)

# [1] "1. Arizona"         "10. Missouri"       "11. Tennessee"      "12. Florida"       
# [5] "13. West Virginia"  "14. Kentucky"       "15. New Hampshire"  "16. Mississippi"   
# [9] "17. Wyoming"        "18. Alabama"        "19. Idaho"           "2. Alaska"         
#[13] "20. Vermont"        "21. Indiana"        "22. Arkansas"       "23. Wisconsin"     
#[17] "24. South Carolina" "25. Nevada"         "26. North Carolina" "27. Michigan"      
#[21] "28. Louisiana"      "29. Ohio"           "3. Kansas"          "30. Maine"         
#[25] "31. Virginia"       "32. South Dakota"   "33. Pennsylvania"   "34. Oregon"        
#[29] "35. Nebraska"       "36. Iowa"           "37. New Mexico"     "38. Washington"    
#[33] "39. Colorado"       "4. Oklahoma"        "40. Illinois"       "41. Minnesota"     
#[37] "42. Delaware"       "43. Rhode Island"   "44. Maryland"       "45. Connecticut"   
#[41] "46. California"     "47. Hawaii"         "48. New Jersey"     "49. Massachusetts" 
#[45] "5. Montana"         "50. New York"       "6. Utah"             "7. North Dakota"   
#[49] "8. Texas"           "9. Georgia"

我们可以从字符向量中删除数字和点,然后使用
order
仅对名称进行排序,并对原始向量进行子集划分

StateRankings[order(sub("^\\d+\\.\\s+", "", StateRankings))]

#[1] "18. Alabama"  "2. Alaska"  "1. Arizona"  "12. Florida"  "19. Idaho"        
# 6] "14. Kentucky"  "16. Mississippi"  "10. Missouri" "15. New Hampshire"     
#[10] "11. Tennessee" "13. West Virginia" "17. Wyoming" 
仅供参考,R具有内置状态名称,该名称按升序存储在
状态中。名称

state.name
#[1] "Alabama"   "Alaska"  "Arizona"  "Arkansas"  "California" "Colorado"
#[7] "Connecticut"  "Delaware"  "Florida"   "Georgia"  "Hawaii" "Idaho"........
数据

StateRankings <- c("1. Arizona", "10. Missouri", "11. Tennessee" ,"12. Florida",
 "13. West Virginia" ,"14. Kentucky", "15. New Hampshire", "16. Mississippi",
 "17. Wyoming", "18. Alabama", "19. Idaho" ,"2. Alaska")

StateRankings我们可以从字符向量中删除数字和点,然后使用
order
仅对名称进行排序,并对原始向量进行子集划分

StateRankings[order(sub("^\\d+\\.\\s+", "", StateRankings))]

#[1] "18. Alabama"  "2. Alaska"  "1. Arizona"  "12. Florida"  "19. Idaho"        
# 6] "14. Kentucky"  "16. Mississippi"  "10. Missouri" "15. New Hampshire"     
#[10] "11. Tennessee" "13. West Virginia" "17. Wyoming" 
仅供参考,R具有内置状态名称,该名称按升序存储在
状态中。名称

state.name
#[1] "Alabama"   "Alaska"  "Arizona"  "Arkansas"  "California" "Colorado"
#[7] "Connecticut"  "Delaware"  "Florida"   "Georgia"  "Hawaii" "Idaho"........
数据

StateRankings <- c("1. Arizona", "10. Missouri", "11. Tennessee" ,"12. Florida",
 "13. West Virginia" ,"14. Kentucky", "15. New Hampshire", "16. Mississippi",
 "17. Wyoming", "18. Alabama", "19. Idaho" ,"2. Alaska")

请展示你的尝试。请展示你的尝试。上帝保佑你的灵魂。非常感谢你。上帝保佑你的灵魂。非常感谢你。