Rを使用したデータ分析は初めてです。最近、事前にフォーマットされた環境観測モデルデータセットを取得しました。そのサブセットの例を以下に示します。
date site obs mod site obs mod
2000-09-01 00:00:00 campus NA 61.63 city centre 66 56.69
2000-09-01 01:00:00 campus 52 62.55 city centre NA 54.75
2000-09-01 02:00:00 campus 52 63.52 city centre 56 54.65
基本的に、データには、「繰り返し発生する列」のさまざまなサイト、つまりサイト-obs-modでの汚染物質の1時間ごとの観測およびモデル化された濃度の時系列が含まれます(この例では、合計75サイトのうち2つのみを示しました)。この「幅の広い」データセットをデータフレームとして読み込み、次のように「より狭い」形式に再形成したいと思いました。
date site obs mod
2000-09-01 00:00:00 campus NA 61.63
2000-09-01 01:00:00 campus 52 62.55
2000-09-01 02:00:00 campus 52 63.52
2000-09-01 00:00:00 city centre 66 56.69
2000-09-01 01:00:00 city centre NA 54.75
2000-09-01 02:00:00 city centre 56 54.65
これを行うには、パッケージ「reshape2」を使用する必要があると思いました。最初に、データセットを溶かしてからdcastしようとしました。
test.melt <- melt(test.data, id.vars = "date", measure.vars = c("site", "obs", "mod"))
ただし、データの半分しか返されませんでした。つまり、最初のサイト(「キャンパス」)に続くサイト(「市内中心部」)のレコードはすべて切り取られました。
date variable value
2001-01-01 00:00:00 site campus
2001-01-01 01:00:00 site campus
2001-01-01 02:00:00 site campus
2001-01-01 00:00:00 obs NA
2001-01-01 01:00:00 obs 52
2001-01-01 02:00:00 obs 52
2001-01-01 00:00:00 mod 61.63
2001-01-01 01:00:00 mod 62.55
2001-01-01 02:00:00 mod 63.52
次に、リキャストを試しました。
test.recast <- recast(test.data, date ~ site + obs + mod)
ただし、次のエラーメッセージが返されました。
Error in eval(expr, envir, enclos) : object 'site' not found
以前の質問を検索しようとしましたが、同様のシナリオは見つかりませんでした(間違っている場合は修正してください)。誰かがこれを手伝ってくれませんか?
よろしくお願いします!