简洁的想法

仁爱、喜乐、和平、忍耐、恩慈、良善、信实、温柔、节制

GNU R Order 排序

| Comments

以下是个成绩单,如果我想以阅读(science)排序,

1
2
3
4
5
6
7
8
9
10
11
12
notes[1:10 ,]
id female race ses schtyp prog read write math science socst
1   70      0    4   1      1    1   57    52   41      47    57
2  121      1    4   2      1    3   68    59   53      NA    61
3   86      0    4   3      1    1   44    33   54      NA    31
4  141      0    4   3      1    3   63    44   47      NA    56
5  172      0    4   2      1    2   47    52   57      NA    61
6  113      0    4   2      1    2   44    52   51      63    61
7   50      0    3   2      1    1   50    59   42      53    61
8   11      0    1   2      1    2   34    46   45      39    36
9   84      0    4   2      1    1   63    57   54      58    51
10  48      0    3   2      1    2   57    55   52      50    51

可以这么做:
1
notes[order(notes$science, na.last=FALSE) , ]

倒数第二列,也就是science列,如果是NA的话,参数na.last就有用了。
na.last=TRUE: NA数据放最后
na.last=FALSE: NA数据放最前
na.last=NA: NA数据直接拿掉

更多请看:
http://www.ats.ucla.edu/stat/r/faq/sort.htm

Comments