0

対応する日付と値が異なる複数の同じ名前が連続しています。その行を統合し、日付とその値で列を作成したいと思います。Rでそれを行う方法はありますか?(私はRを学んでいます)

ID  Date    Value
62  17/03/2008  1
62  29/09/2008  9
62  01/01/2009  0
66  01/04/2009  6
66  29/06/2009  3
66  30/09/2009  5
75  01/01/2010  6
75  01/04/2010  0
91  01/07/2010  8
91  28/09/2010  0

以下のように変換したい

 62        62   66        66    75         75
17/03/2008  1   01/04/2009  6   01/01/2010  6
29/09/2008  9   29/06/2009  3   01/04/2010  0
01/01/2009  0   30/09/2009  5   

これが完了したら、グループ (例: 62、66、75) の出力ファイルを txt 形式で書き込み、txt ファイルの名前をプレフィックス 'a' 付きのグループ名 (例: 62a.txt、66a.txt、75a) として書き込みます。 。TXT)。非常に長いデータセットがあるため、ある種のループを実行する必要があります。

4

1 に答える 1

1

どのような出力が必要ですか? splitIDに従ってデータを取得しますか? これにより、各 ID のエントリを含むリストが返されます。data.frame再現可能な例については、 を次に示します。同様に、目的の出力の構造も提供する必要があります。

df <- structure(list(ID = c(62L, 62L, 62L, 66L, 66L, 66L, 75L, 75L, 
      91L, 91L), Date = structure(c(6L, 9L, 1L, 3L, 8L, 10L, 2L, 4L, 
      5L, 7L), .Label = c("01/01/2009", "01/01/2010", "01/04/2009", 
      "01/04/2010", "01/07/2010", "17/03/2008", "28/09/2010", "29/06/2009", 
      "29/09/2008", "30/09/2009"), class = "factor"), Value = c(1L, 
      9L, 0L, 6L, 3L, 5L, 6L, 0L, 8L, 0L)), .Names = c("ID", "Date", 
      "Value"), class = "data.frame", row.names = c(NA, -10L))

これはあなたがやりたいと思うことです:

split(df, df[,"ID"])
split(df[,c("Date", "Value")], df[,"ID"])
于 2013-07-18T08:01:58.147 に答える