私は観察のより多くの時間があるかもしれないすべての日付についてR:データ・テーブル・グループを平坦化し、
datecolumn hourcolumn daycolumn V h m dir_0 dir_15 dir_30 dir_45
1: 2014.01.02 08:00 4 83 8 0 1 NA NA NA
2: 2014.01.02 08:15 4 72 8 15 NA -1 NA NA
3: 2014.01.02 08:30 4 60 8 30 NA NA 0 NA
4: 2014.01.02 08:45 4 107 8 45 NA NA NA -1
5: 2014.01.02 09:00 4 443 9 0 -1 NA NA NA
---
40831: 2016.11.17 20:45 4 490 20 45 NA NA NA -1
40832: 2016.11.17 21:00 4 461 21 0 1 NA NA NA
40833: 2016.11.17 21:15 4 502 21 15 NA 1 NA NA
40834: 2016.11.17 21:30 4 441 21 30 NA NA 1 NA
40835: 2016.11.17 21:45 4 617 21 45 NA NA NA 1
以下のいずれかのように見えるのデータテーブルを持っており、毎時間、1つを持っているそれらのうちのデータテーブルを作成します15分ごとに入力します。私がする必要がどのような
は、DTが
datecolumn h m dir_0 dir_15 dir_30 dir_45
1: 2014.01.02 8 0 1 -1 0 -1
2: 2014.01.02 9 0 -1 -1 1 -1
3: 2014.03.09 9 0 1 1 -1 -1
.
.
.
この結果を達成する "平ら" である私は、このコード
DT[, lapply(.SD, function(x) x), by=list(datecolumn, h), .SDcols = c("dir_0", "dir_15", "dir_30", "dir_45")]
を試みたが、それは私に次のようになります:
datecolumn h m dir_0 dir_15 dir_30 dir_45
1: 2014.01.02 8 0 1 NA NA NA
2: 2014.01.02 8 15 NA -1 NA NA
3: 2014.01.02 8 30 NA NA 0 NA
4: 2014.01.02 8 45 NA NA NA -1
5: 2014.01.02 9 0 -1 NA NA NA
6: 2014.01.02 9 15 NA -1 NA NA
7: 2014.01.02 9 30 NA NA 1 NA
8: 2014.01.02 9 45 NA NA NA -1
9: 2014.03.09 9 0 1 NA NA NA
10: 2014.03.09 9 15 NA 1 NA NA
11: 2014.03.09 9 30 NA NA -1 NA
12: 2014.03.09 9 45 NA NA NA -1
.
.
.
サイクルでサブセット化して抽出することはできますが、それはエレガントで素早いものではありません。
上記の出力では、すべての行がdir_X列からの単一の項目であり、同じ日付列とhを共有するすべてのdir_Xを持つグループではありません。DT [、lapply(.SD、function(x)x)リスト(datecolumn、H)、.SDcolsの=のC( "dir_0"、 "dir_15"、 "dir_30"、 "dir_45は")] [1]リストに戻っているだろう、私は思う:
[[1]]
datecolumn h m dir_0 dir_15 dir_30 dir_45
[1,] 2014.01.02 8 0 1 NA NA NA
[2,] 2014.01.02 8 15 NA -1 NA NA
[3,] 2014.01.02 8 30 NA NA 0 NA
[4,] 2014.01.02 8 45 NA NA NA -1
できること1つのステップで所望の出力を得ることが最良であるが、データを整理するこの第2の方法も良いスタートになる可能性がある。 これに対処する方法の提案はありますか? ありがとうございます。 サンディエゴ
コードでは、アイデンティティ操作を行うだけです。 – akrun