私はデータフレームをソートする方法を理解する:私はどのように行うRのdata.frameをソートしてフィルタリングする方法は?
df[df$Weight > 120,]
しかし:
df[order(df$Height),]
と私はいくつかの述語と一致するデータフレームをフィルタリング(またはサブセット)する方法を理解しますとフィルターを並べ替えてください(例:高さとフィルターの順)。
私はデータフレームをソートする方法を理解する:私はどのように行うRのdata.frameをソートしてフィルタリングする方法は?
df[df$Weight > 120,]
しかし:
df[order(df$Height),]
と私はいくつかの述語と一致するデータフレームをフィルタリング(またはサブセット)する方法を理解しますとフィルターを並べ替えてください(例:高さとフィルターの順)。
いずれかの二つのステップ
df1 <- df[df$weight > 120, ]
df2 <- df1[order(df1$height), ]
またはあなたが一歩でなければならない場合で - しかし、それは本当にすべてのクリーナーではありません。最初
データ:
R> subset(df, weight > 120)[order(subset(df, weight > 120)$height),]
weight height
9 140.2 111.2
3 123.6 132.2
7 135.1 154.3
4 126.3 154.4
5 124.0 157.3
1 133.7 186.1
R>
私は二段階でいいと思う:
R> set.seed(42)
R> df <- data.frame(weight=rnorm(10, 120, 10), height=rnorm(10, 160, 20))
R> df
weight height
1 133.7 186.1
2 114.4 205.7
3 123.6 132.2
4 126.3 154.4
5 124.0 157.3
6 118.9 172.7
7 135.1 154.3
8 119.1 106.9
9 140.2 111.2
10 119.4 186.4
そして、それを行うための一つの方法は、二重のサブセットです。
パッケージdata.table
あなたは、コードの1本の短い線で、このすることができます:ダークEddelbuettelの例を借りる
、いくつかのデータを設定します
set.seed(42)
df <- data.frame(weight=rnorm(10, 120, 10), height=rnorm(10, 160, 20))
は、体重のdata.table
とサブセットにdata.frame
を変換します高さによって順序付け:
library(data.table)
dt <- data.table(df)
dt[weight>120][order(height)]
weight height
[1,] 140.1842 111.1907
[2,] 123.6313 132.2228
[3,] 135.1152 154.3149
[4,] 126.3286 154.4242
[5,] 124.0427 157.3336
[6,] 133.7096 186.0974
ニース。はい、これは 'data.table'の主要な便利な機能の1つです。新しいユーザーがいつも 'data.table'を使うように変換する必要があると思うのだろうか?この場合、多くの場合、 'data.frame()'の呼び出しは 'data.table()'で置き換えることができ、最初は 'data.table'で始めるときに変換する必要はありません。私はあなたがこれを知っていることを知っている、それは本当にマーケティングの質問です。 –
df1 <- df[order(df$height), ][df$weight > 120, ]
フィルターの前に必ず注文を入れてください。
ちょうど好奇心から、なぜ 'set.seed(42)'? – kohske
私は私が知っているもちろん:-) – baptiste
を使用すると思います。私はなぜ「42」ではなく、「1」または「2」ではないと言います。 –