3

乱雑で、クリーンアップする必要があるデータセットに由来するカテゴリ データを最適に構造化する方法に苦労しています。

コーディングスキーム

大学の科学コースの試験のデータを分析しています。私たちは生徒の回答のパターンを調べており、生徒が回答で行っていることの種類を表すコーディング スキームを開発しました。コーディング方式のサブセットを以下に示します。

各メジャー コード (1、2、3) 内には、ネストされた一意でないサブコード (a、b、...) があることに注意してください。

生データがどのように見えるか

ここで表示できる実際のデータの匿名化された生のサブセットを作成しました。私の問題の一部は、データをコーディングした人が、一部の学生が複数のパターンを表示したことに気付いたことです。コーダーの解決策は、複数のパターンを持つ学生を保持するのに十分な数の列 ( reason1reason2、...) を作成することでした。reason1順序 ( , ) は任意であるため、これは重要です。「依存関係」を正しく適用したreason22 人の学生 (私の データセットの学生 41 と学生 42 など) は、列または列3aに表示されるかどうかに関係なく、両方とも分析に登録する必要があります。reasonreason2

学生データを最適に構造化するにはどうすればよいですか?

私の問題の一部は、生データでは、すべての学生が同じパターンまたは同じ数のパターンを同じ順序で表示するわけではないということです。1 つのことだけを行う生徒もいれば、複数のことを行う生徒もいます。したがって、生徒の例を抽象化して表現すると、次のようになります。

上記の例ではstudent002student003どちらも「1b」とコード化されていることに注意してください。ただし、実際のデータを反映するために意図的に順序を異なるものとして示しています。

私の(実用的な)質問

  1. reason1、を 1 つの列reason2に連結する必要が...ありますか?
  2. reason一部の学生の多重度を反映するために、R で sを (再) コードするにはどうすればよいですか?

ありがとう

この質問は、R の特定の機能に関するものであると同時に、優れたデータの概念化に関するものであることは理解していますが、ここで質問するのが適切だと思いました。私が質問するのが不適切だと思われる場合は、コメントでお知らせください。stackoverflow は自動的に私の受信トレイに悲しげな顔文字をあふれさせます。十分に具体的でない場合はお知らせください。より明確になるよう最善を尽くします。

4

3 に答える 3

5

「長く」する:

library(reshape)
dnow <- read.csv("~/Downloads/catsample20100504.csv")
dnow <- melt(dnow, id.vars=c("Student", "instructor"))
dnow$variable <- NULL ## since ordering does not matter
subset(dnow, Student%in%c(41,42)) ## see the results

次に行うことは、実行したい分析の種類によって異なります。ただし、長い形式は、あなたのような不規則なデータに役立ちます。

于 2010-05-05T07:04:30.453 に答える
2

さまざまな理由を考慮したい場合は、plyr から ddply を使用し、すべての列で分割する必要があります。それらを無視したい場合は、分割でそれらの列を使用しないでください。ただし、最初にいくつかの疑問符と余分なものをクリーンアップする必要があります。

x <- ddply(data, c("split_column1", "split_column3" etc),
           summarize(result_df, stats you want from result_df))
于 2010-05-05T00:34:45.863 に答える
1

あなたが答えようとしている(全体像の)質問は何ですか?この情報があなたにとって興味深いのはなぜですか?

「学生がこれを行う場合、彼らもこれを行う可能性が高い」などのパターンを見つけようとしているだけですか?

その場合は、データセットをより小さなランダムサンプルに分割して分析し、誤検知のリスクを軽減することを検討します。

でも面白い問題!

于 2010-05-05T14:32:32.677 に答える