2017-09-12 7 views
0

IがRで次のようなデータ・フレームを有する:Rの複数の列に従ってデータフレームをグループ化するにはどうすればよいですか?

 V1 V2  V3  V4 
1 81 abc  goth 2014-01-01 05:54:21 
2 81 pqr deathrock 2014-01-01 05:54:21 
3 81 pqr goth 2014-01-01 05:54:21 
4 22 abc  80s 2014-01-01 05:54:22 
5 22 uio  retro 2014-01-01 05:54:22 
6 12 xyz  80s 2014-01-01 05:54:54 
7 81 gef  goth 2014-01-01 05:54:55 
8 22 wvy  80s 2014-01-01 05:54:22 
9 12 abc  hit 2014-01-01 05:54:54 
10 12 abc listen 2014-01-01 05:54:54 

Iは、データフレームグループ化する列V1最初、次いでカラムV3(すべての列1つの値が一緒にグループ化され、各固有の値のために応じて列1の列3の値をグループ化して)次のような出力を得ます。

 V1 V2  V3  V4 
1 81 abc  goth 2014-01-01 05:54:21 
2 81 gef  goth 2014-01-01 05:54:55 
3 81 pqr goth 2014-01-01 05:54:21 
4 81 pqr deathrock 2014-01-01 05:54:21 
5 22 abc  80s 2014-01-01 05:54:22 
6 22 wvy  80s 2014-01-01 05:54:22 
7 22 uio  retro 2014-01-01 05:54:22 
8 12 xyz  80s 2014-01-01 05:54:54 
9 12 abc  hit 2014-01-01 05:54:54 
10 12 abc listen 2014-01-01 05:54:54 

どうすればよいですか?

私は

df = df %>% group_by(V1, V3) 

を試してみましたが、それは右の結果を与えるものではありません。

答えて

1

試してみてください:

df[order(df$V1, df$V3, decreasing=TRUE),] 

出力:

V1 V2  V3     V4 
1: 81 abc  goth 2014-01-01 05:54:21 
2: 81 pqr  goth 2014-01-01 05:54:21 
3: 81 gef  goth 2014-01-01 05:54:55 
4: 81 pqr deathrock 2014-01-01 05:54:21 
5: 22 uio  retro 2014-01-01 05:54:22 
6: 22 abc  80s 2014-01-01 05:54:22 
7: 22 wvy  80s 2014-01-01 05:54:22 
8: 12 abc listen 2014-01-01 05:54:54 
9: 12 abc  hit 2014-01-01 05:54:54 
10: 12 xyz  80s 2014-01-01 05:54:54 
+0

arrange'しかし、列V1の各一意の値のために、私も列V3の値を注文したいと思います。どうすればいい? –

+0

@AsmitaPoddar - 上記の編集を参照してください。 – www

1

あなたのデータフレームの使用を注文中のみ興味を持っている場合:

dfNew = df %>% %>% arrange(V1,V3) 

しかし、あなたはグループで計算を行うと、注文の使用による結果を表示する必要がある場合:

dfNew = df %>% group_by(V1, V3)%>% arrange(V1,V3) 
+3

あなたがグループ化を必要としないが、ちょうど ' – alistaire

関連する問題