一連の観察結果をデータテーブルにまとめたいのですが、構文に関するヘルプを使用できます。
これは結合と同じくらい簡単だと思いますが、特定の観測日に特定の値が見られたことを特定しようとしています。
- 観測は日付ごとに要約されます
- 観察日にはさまざまな測定数があります (日付あたりの行数)
- 「測定」列は、特定の値がその日にいずれかのセンサーで観察されたことを示します。
目標を明確にするために、2 つのサンプル データ セットを作成しました。また、データ間の関係を示すことを期待する Excel スプレッドシートの画像も作成しました。
library(data.table)
raw <- data.table(
Date = as.Date(c("2013-5-4","2013-5-4","2013-5-4", "2013-5-9","2013-5-9", "2013-5-16","2013-5-16","2013-5-16", "2013-5-30")),
S1 = c(4, 2, 3, 1, 1, 8, 7, 3, 3),
S2 = c(2, 5, 2, 4, 4, 9, 1, 6, 4),
S3 = c(6, 2, 2, 7, 3, 2, 7, 2, 1)
)
summarized <- data.table(
Date = as.Date(c("2013-5-4", "2013-5-9", "2013-5-16", "2013-5-30")),
M1 = c(FALSE,TRUE,TRUE,TRUE),
M2 = c(TRUE,FALSE,TRUE,FALSE),
M3 = c(TRUE,TRUE,TRUE,TRUE),
M4 = c(TRUE,FALSE,FALSE,TRUE),
M5 = c(TRUE,FALSE,FALSE,FALSE),
M6 = c(TRUE,FALSE,TRUE,FALSE),
M7 = c(FALSE,TRUE,TRUE,FALSE),
M8 = c(FALSE,FALSE,TRUE,FALSE),
M9 = c(FALSE,FALSE,TRUE,FALSE),
M10 = c(FALSE,FALSE,TRUE,FALSE)
)
エクセル
Raw は測定値の入力です。複数の測定が同じ観測日に発生する可能性があります (つまり、複数の行)。
要約すると、私が得たいと思っているものです。行は要約され、「測定」列は単に値 (M に続く、つまり M1、M2) が V 列のいずれかでその日に観察されたことを示します。たとえば、数値 2 は 5/16 の最初と最後の観測で見られましたが、数値 5 は 5/16 の 9 つの値のいずれにも見られませんでした。
結合を使用する必要があると思いますが、M 列を計算する方法がわかりません。
どんな助けでも大歓迎です。
質問: データ サイエンスまたは数学におけるこの種の操作の名前はありますか?
更新:次のことを試しています
setkey(raw,Date)
s <- data.table( Date=unique(raw$Date)) # get a datatable of the unique dates
setkey(s,Date)
s[raw, M1:=(length(na.omit(match(c(raw$V1,raw$v2,raw$v3),1)))>=1)]
値は 5-4 に期待されるものではないことに注意してください (FALSE である必要があります)。これは、マッチ文で生の行が制約されていないためだと思います。
Date M1
1: 2013-05-04 TRUE
2: 2013-05-09 TRUE
3: 2013-05-16 TRUE
4: 2013-05-30 TRUE
私の推測では、結合内の生の行をサブセット化するには、別のものを使用する必要があります。