Taglibro de H
http://ito-hi.blog.so-net.ne.jp/2008-12-02?comment_success=2010-09-01T15:26:42&time=1283322402
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)
途中省略
ただし、日本語ではうまく並び替えできない。
> 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"
matrix では 1 列目も character になってしまっている。
また,2 列目は character だけど,エンコーディングのバイトが辞書順になっていない。
解決法は,元のデータを data.frame として定義する。そうすれば,うまくいく。
> m <- read.csv(stdin(), header=FALSE)
0: 261, "コナラ","Quercus serrata"
1: 65, "ウリハダカエデ","Acer rufinerve"
2: 288, "アケビ","Akebia quinata"
3: 177, "モチツツジ","Rhododendron macrosepalum"
4: 288, "ミツバアケビ","Akebia trifoliata"
6: 51, "タラノキ","Aralia elata"
7: 261, "アラカシ","Quercus glauca"
8: 261, "アベマキ","Quercus variabilis"
9: 177, "コバノミツバツツジ","Rhododendron reticulatum"
10: 171, "エゴノキ","Styrax japonica"
11:
>
> m
V1 V2 V3
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(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
http://ito-hi.blog.so-net.ne.jp/2008-12-02?comment_success=2010-09-01T15:26:42&time=1283322402
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)
途中省略
ただし、日本語ではうまく並び替えできない。
> 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"
matrix では 1 列目も character になってしまっている。
また,2 列目は character だけど,エンコーディングのバイトが辞書順になっていない。
解決法は,元のデータを data.frame として定義する。そうすれば,うまくいく。
> m <- read.csv(stdin(), header=FALSE)
0: 261, "コナラ","Quercus serrata"
1: 65, "ウリハダカエデ","Acer rufinerve"
2: 288, "アケビ","Akebia quinata"
3: 177, "モチツツジ","Rhododendron macrosepalum"
4: 288, "ミツバアケビ","Akebia trifoliata"
6: 51, "タラノキ","Aralia elata"
7: 261, "アラカシ","Quercus glauca"
8: 261, "アベマキ","Quercus variabilis"
9: 177, "コバノミツバツツジ","Rhododendron reticulatum"
10: 171, "エゴノキ","Styrax japonica"
11:
>
> m
V1 V2 V3
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(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
※コメント投稿者のブログIDはブログ作成者のみに通知されます