1

cast()Reshape ライブラリを使用してデータをキャストしようとしていますが、予期しない結果が得られます。all_ia[all_ia$Student.ID == 102050,]大量のデータを含むデータフレームから始めて、

66     102050        1      Mar
67     102050        0      Dec
68     102050        1      May
69     102050        0      Feb

変数は、それぞれ Student.ID、Proficiency.Level、testmonth です。

5 番目の月が 9 月の Student.ID がいくつかあります。

を実行all_ia.cast <- cast(all_ia, Student.ID ~ testmonth, value=c("Proficiency.Level"), fill=c("NA"))してから実行すると、all_ia.cast[all_ia.cast$Student.ID == 102050,]予期しない結果が得られます。

1325    102050    1    1    1    1    NA

ここで、変数はそれぞれ Student.ID、Dec、Feb、Mar、May、Sep です。実行すると、という警告が表示さcast()れますAggregation requires fun.aggregate: length used as default

私の質問は、なぜ fun.aggregate が必要なのか、キャストの Dec 変数と Feb 変数が 0 ではなく 1 に等しいのはなぜですか?

ご協力ありがとうございました!

4

1 に答える 1

1

これは、キャスト式Student.Id ~ tesmonthに data.frame のすべての変数が含まれていProficiency.Levelない、つまり含まれていないためです。

これは、一般に、キャストで集計を実行する必要があり、集計式のデフォルトが であることを意味しlengthます。

各学生の月と習熟度レベルの間に 1 対 1 の関係がある特殊なケースがあるようです。したがって、データを保持する集計関数を選択する必要があります。たとえば、mean 以下を使用する必要があります。

cast(all_ia, Student.ID ~ testmonth, value=mean("Proficiency.Level"))

テストデータを提供しないため、これはテストされていません。

于 2011-06-15T14:16:34.483 に答える