R: order()で並べ替え [統計]
こういうデータがあったとする。
m <- matrix(c( 261, "コナラ","Quercus serrata", 65, "ウリハダカエデ","Acer rufinerve", 288, "アケビ","Akebia quinata", 177, "モチツツジ","Rhododendron macrosepalum", 288, "ミツバアケビ","Akebia trifoliata", 51, "タラノキ","Aralia elata", 261, "アラカシ","Quercus glauca", 261, "アベマキ","Quercus variabilis", 177, "コバノミツバツツジ","Rhododendron reticulatum", 171, "エゴノキ","Styrax japonica"), ncol = 3, byrow = TRUE)
1列目が科コード、2列目が和名、3列目が学名。ある場所での出現種といったイメージ。
表示するとこうなる。
> m [,1] [,2] [,3] [1,] "261" "コナラ" "Quercus serrata" [2,] "65" "ウリハダカエデ" "Acer rufinerve" [3,] "288" "アケビ" "Akebia quinata" [4,] "177" "モチツツジ" "Rhododendron macrosepalum" [5,] "288" "ミツバアケビ" "Akebia trifoliata" [6,] "51" "タラノキ" "Aralia elata" [7,] "261" "アラカシ" "Quercus glauca" [8,] "261" "アベマキ" "Quercus variabilis" [9,] "177" "コバノミツバツツジ" "Rhododendron reticulatum" [10,] "171" "エゴノキ" "Styrax japonica"
科コード>学名の順にならべかえてみる。
> m[order(as.numeric(m[,1]), m[,3]),] [,1] [,2] [,3] [1,] "51" "タラノキ" "Aralia elata" [2,] "65" "ウリハダカエデ" "Acer rufinerve" [3,] "171" "エゴノキ" "Styrax japonica" [4,] "177" "モチツツジ" "Rhododendron macrosepalum" [5,] "177" "コバノミツバツツジ" "Rhododendron reticulatum" [6,] "261" "アラカシ" "Quercus glauca" [7,] "261" "コナラ" "Quercus serrata" [8,] "261" "アベマキ" "Quercus variabilis" [9,] "288" "アケビ" "Akebia quinata" [10,] "288" "ミツバアケビ" "Akebia trifoliata"
ただし、日本語ではうまく並び替えできない。
> m[order(as.numeric(m[,1]), m[,2]),] [,1] [,2] [,3] [1,] "51" "タラノキ" "Aralia elata" [2,] "65" "ウリハダカエデ" "Acer rufinerve" [3,] "171" "エゴノキ" "Styrax japonica" [4,] "177" "モチツツジ" "Rhododendron macrosepalum" [5,] "177" "コバノミツバツツジ" "Rhododendron reticulatum" [6,] "261" "コナラ" "Quercus serrata" [7,] "261" "アベマキ" "Quercus variabilis" [8,] "261" "アラカシ" "Quercus glauca" [9,] "288" "アケビ" "Akebia quinata" [10,] "288" "ミツバアケビ" "Akebia trifoliata"
タグ:R
データをデータフレームに読み込むと,1列名は整数,2,3列は factor になる。そう言う風にすれば,うまくいくと思います。
> m[order(m[,1], m[,2]),]
V1 V2 V3
6 51 タラノキ Aralia elata
2 65 ウリハダカエデ Acer rufinerve
10 171 エゴノキ Styrax japonica
9 177 コバノミツバツツジ Rhododendron reticulatum
4 177 モチツツジ Rhododendron macrosepalum
8 261 アベマキ Quercus variabilis
7 261 アラカシ Quercus glauca
1 261 コナラ Quercus serrata
3 288 アケビ Akebia quinata
5 288 ミツバアケビ Akebia trifoliata
画像認証見にくい
by r-de-r (2010-09-01 15:26)
おお、なるほど。ありがとうございます。
> 画像認証見にくい
たしかに。
by hiroki (2010-09-01 20:22)