忍者ブログ
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

今までイマイチよくわからなかったデータの並べ替え

dat <- data.frame(a=factor(c("a1", "a1", "a1", "a1", "a1", "a2", "a2", "a2", "a2", "a2")), s=c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10), b1=c(3, 3, 1, 3, 5, 3, 5, 2, 4, 6), b2=c(4, 3, 4, 5, 7, 2, 6, 3, 6, 4), b3=c(6, 6, 6, 4, 8, 3, 2, 3, 6, 5), b4=c(5, 7, 8, 7, 9, 2, 3, 3, 4, 6))
# データフレームの中身

a s b1 b2 b3 b4
a1 1 3 4 6 5
a1 2 3 3 6 7
a1 3 1 4 6 8
a1 4 3 5 4 7
a1 5 5 7 8 9
a2 6 3 2 3 2
a2 7 5 6 2 3
a2 8 2 3 3 3
a2 9 4 6 6 4
a2 10 6 4 5 6

これをb1で並べ替える

class(dat$b1) # 型の確認。文字列では並べ替えできない
odr <- order(dat$b1) # odrというオブジェクトに、並べ替えの"行番号"が保存される
odr
 [1]  3  8  1  2  4  6  9  5  7 10
dat2 <- dat[odr,] # odrに保存された行のデータを取り出す。3行目のデータ、8行目のデータ…という感じ

## 型を確認しておく。数値がfactorだったら数値になおす
x <- factor(1:10)
x

class(x)
y <- as.numeric(as.character(x)) # as.numeric(x)だとfactorのlevelが適用されてしまうので
class(y)
PR
Comment
Trackback
Trackback URL

Comment form
Title
Color & Icon Vodafone絵文字 i-mode絵文字 Ezweb絵文字  
Comment
Name
Mail
URL
Password
プロフィール
HN:
tao
HP:
性別:
非公開
職業:
会社員
趣味:
アウトドア、自転車、ジョギング、英語学習
自己紹介:
・千葉在住のサラリーマンです。データ分析っぽいことが仕事。
・今年英検1級取得。今はTOEIC高得点を目指して勉強中。
・興味のあることは野球、アウトドア、英語学習、統計、プログラミング、PC関係などなど。
ブログ内検索
freead
順位表
プロ野球データFreak
セリーグ順位表
パリーグ順位表