找回密码
 立即注册
查看: 3565|回复: 3

急急急急!!!!!关于对一个字符串的排序问题!

[复制链接]
发表于 2014-11-5 16:55:40 | 显示全部楼层 |阅读模式
有一个向量:a=c(1,13,11,2,3,21,"X")
我对其进行排序,想得到的顺序是:
1,2,3,11,13,21,x
但是我用sort(a)得到的却是:
1,11,13,2,21,3,X

请问这个问题怎么解决?急急急急急急急急急!!!!!!!

求大神帮忙!
回复

使用道具 举报

发表于 2014-11-6 15:54:57 | 显示全部楼层
a=c(1,13,11,2,3,21,"X")

由于a向量中有字符串,所以
class(a)
[1] "character"

因此,字符串向量排序的结果,与数字型向量的排序结果是不同的。
你想要的是对数字进行排序,所以先把字符串去掉,再排序,然后再加上字符串。

如下:

  1. a<-c(1,13,11,2,3,21,"X");
  2. b<-as.numeric(a[-length(a)])
  3. b
  4. [1]  1 13 11  2  3 21

  5. c<-c(sort(b),a[length(a)])
  6. c
  7. [1] "1"  "2"  "3"  "11" "13" "21" "X"

复制代码


最后结果就是你想要的
回复

使用道具 举报

 楼主| 发表于 2014-11-7 16:07:40 | 显示全部楼层
editor 发表于 2014-11-6 15:54
a=c(1,13,11,2,3,21,"X")

由于a向量中有字符串,所以

恩恩,感谢大神!
回复

使用道具 举报

发表于 2014-11-8 15:44:38 | 显示全部楼层
{:soso_e179:}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|R语言中文网

GMT+8, 2024-11-25 14:34 , Processed in 0.022477 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表