私はこのデータフレームを持っています:
Date Company Region Units
1 1/1/2012 IBM America 10
2 1/1/2012 IBM Europe 4
3 1/1/2012 IBM Pacific 2
4 1/1/2012 HP America 10
5 1/1/2012 HP Europe 2
6 1/1/2012 Gateway Americas 2
7 1/2/2012 IBM Americas 10
8 1/2/2012 HP Europe 2
9 1/12/2012 Gateway Americas 10
dput(x)
structure(list(Date = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 3L,
3L, 2L), .Label = c("1/1/2012", "1/12/2012", "1/2/2012"), class = "factor"),
Company = structure(c(3L, 3L, 3L, 2L, 2L, 1L, 3L, 2L, 4L), .Label = c(" Gateway",
" HP", " IBM", " Gateway"), class = "factor"), Region = structure(c(3L,
5L, 6L, 1L, 2L, 7L, 4L, 2L, 7L), .Label = c(" America",
" Europe", " America", " Americas",
" Europe", " Pacific", " Americas"), class = "factor"),
Units = c(10L, 4L, 2L, 10L, 2L, 2L, 10L, 2L, 10L)), .Names = c("Date",
"Company", "Region", "Units"), class = "data.frame", row.names = c(NA,
-9L))
ヒートマップを作成したいのですが、日付が欠落しているため、見栄えがよくありません。不足している各地域と日付の単位について)を入力する必要があります。
会社ごと、日付ごとに3つのリージョンが必要です。日付とリージョンが欠落している場合は、それを挿入して、単位に0を入力します。
2012年1月1日から2012年1月12日までのすべての日付でこのベクトルを作成できます。
d<-seq(as.Date(c("1/1/2012"), format="%m/%d/%Y"), as.Date(c("12/12/2012"), format="%m/%d/%Y"), by="mon")
会社ごとに、ベクトルdの日付が3つのリージョンすべてに存在することを確認する必要があります。そうでない場合は、ユニット0で挿入します。
これを行う簡単な方法はありますか?どんなガイダンスでも大歓迎です。