2017-12-21 8 views
-2

質問があります。 TIMEを各IDの昇順でソートしたいのですが、単純な方法を試しましたが、すべてのIDの同じ時点を積み重ねています。昇順にソートされた時間別のIDが必要です。前もって感謝します。ID列を持つ時間の列を並べ替える時間

データは

ID TIME DV 
1 0 0 
1 2 1024.88 
1 12 1229.82 
1 36 1269.47 
1 4 1274.37 
1 24 1274.37 
1 8 1274.37 
1 48 1274.37 
2 0 0 
2 48 924.84 
2 4 1356.87 
2 36 1459.79 
2 12 1467.43 
2 24 1467.43 
2 8 1467.43 
2 2 1467.43 
+0

'あなたのデータを表示するには、' dput(...)を使用してください。 – jogo

答えて

0

ご質問は再現性がない(How to make a great R reproducible example?を参照してください)です。ただし、dplyrパッケージを使用した簡単な解決方法があります。

df <- data.frame(ID = c(1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2), 
      TIME = c(0,2,12,36,4,24,8,48,0,48,4,36,12,24,8,2), 
      EV = c(0,1024.88,1229.82,1269.47,1274.37,1274.37,1274.37,1274.37, 
      0,924.84,1356.87,1459.79,1467.43,1467.43,1467.43,1467.43)) 

library(dplyr) 

df %>% 
    arrange(ID, TIME) 

ID TIME EV 
1 0 0.00 
1 2 1024.88 
1 4 1274.37 
1 8 1274.37 
1 12 1229.82 
1 24 1274.37 
1 36 1269.47 
1 48 1274.37 
2 0 0.00 
2 2 1467.43 
2 4 1356.87 
2 8 1467.43 
2 12 1467.43 
2 24 1467.43 
2 36 1459.79 
2 48 924.84 

編集:は、これはあなたが望むものではないですか?

+0

ええと、私は非常に申し訳ありませんが、私は医療分野から来ています。まだそれはmeeのために働いていません –

+0

私はそれを完全に再現できるように私の答えを編集しました。今働いていますか?マシンに 'dplyr'がインストールされている必要があります。 – tifu

+0

はい、とても完璧です。ありがとうございます。 –

1

data.tableであなたはこのような何かを行うことができ:

dt <- data.table(ID = c(1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2), 
       TIME = c(0,2,12,36,4,24,8,48,0,48,4,36,12,24,8,2), 
       EV = c(0,1024.88,1229.82,1269.47,1274.37,1274.37,1274.37,1274.37, 
         0,924.84,1356.87,1459.79,1467.43,1467.43,1467.43,1467.43)) 

dt[order(ID, TIME)] 

    ID TIME  EV 
1: 1 0 0.00 
2: 1 2 1024.88 
3: 1 4 1274.37 
4: 1 8 1274.37 
5: 1 12 1229.82 
6: 1 24 1274.37 
7: 1 36 1269.47 
8: 1 48 1274.37 
9: 2 0 0.00 
10: 2 2 1467.43 
11: 2 4 1356.87 
12: 2 8 1467.43 
13: 2 12 1467.43 
14: 2 24 1467.43 
15: 2 36 1459.79 
16: 2 48 924.84 
関連する問題