Rのデータフレームを降順でソートする(decreasing=Tを使わずに)
ほんと、ちょっとした小ネタです。
↓こちらの本を読んでいて知った(気付いた)方法。
RとRubyによるデータ解析入門


まず、サンプル用のデータフレームを作ります。
このデータフレームを年齢順にソートしたい場合は、ソート結果のインデックスを返してくれるorder関数を使って、↓こんな風にしますよね。
order関数のデフォルトは昇順なので、降順にしたい場合は、↓こうですよね。
でも、"decreasing=T"って打ち込むのって、けっこう面倒じゃないですか? あと、"decreasing"の綴りが思い付かなかったり(英語力・・・)。
【クイズ】マッチ棒を1本足すだけで、逆にしてください
おお、マイナスをかければ、大小関係が逆になりますからね。
でも、可読性は低いと思うので、長い期間使うつもりのスクリプトとか、誰かと共有するスクリプトを書くときは、やめた方が良さそう。「なんで、ここマイナスかけてるの?」とか、聞かれてもめんどくさいし。
なので、個人的でテンポラリな確認作業とかやっているときの、タイピングの省力化などにご活用ください。
↓こちらの本を読んでいて知った(気付いた)方法。
RとRubyによるデータ解析入門

まず、サンプル用のデータフレームを作ります。
name <- c("Ana", "Bill", "Chris", "Dan", "Emily") age <- c(18, 59, 57, 6, 31) tbl <- data.frame(name, age) tbl name age 1 Ana 18 2 Bill 59 3 Chris 57 4 Dan 6 5 Emily 31
このデータフレームを年齢順にソートしたい場合は、ソート結果のインデックスを返してくれるorder関数を使って、↓こんな風にしますよね。
tbl[order(tbl$age), ]
name age 4 Dan 6 1 Ana 18 5 Emily 31 3 Chris 57 2 Bill 59
order関数のデフォルトは昇順なので、降順にしたい場合は、↓こうですよね。
tbl[order(tbl$age, decreasing=T), ]
name age 2 Bill 59 3 Chris 57 5 Emily 31 1 Ana 18 4 Dan 6
でも、"decreasing=T"って打ち込むのって、けっこう面倒じゃないですか? あと、"decreasing"の綴りが思い付かなかったり(英語力・・・)。
【クイズ】マッチ棒を1本足すだけで、逆にしてください
tbl[order(-tbl$age), ]
name age 2 Bill 59 3 Chris 57 5 Emily 31 1 Ana 18 4 Dan 6
おお、マイナスをかければ、大小関係が逆になりますからね。
でも、可読性は低いと思うので、長い期間使うつもりのスクリプトとか、誰かと共有するスクリプトを書くときは、やめた方が良さそう。「なんで、ここマイナスかけてるの?」とか、聞かれてもめんどくさいし。
なので、個人的でテンポラリな確認作業とかやっているときの、タイピングの省力化などにご活用ください。
コメント
コメントを投稿