Domanda

Sto lottando con il modo di migliore struttura dati categorici che è disordinato, e viene da una set di dati avrò bisogno di pulire.

Il Coding Scheme

Sto analizzando i dati da un esame corso di scienze dell'università. Stiamo guardando i modelli in le risposte degli studenti, e abbiamo sviluppato uno schema di codifica per rappresentare il tipo di cose gli studenti stanno facendo nelle loro risposte. Un sottoinsieme dello schema di codifica è mostrato sotto.

Si noti che all'interno di ogni codice principale (1, 2, 3) sono sottocodici non esclusiva nidificati (a, b, ...).

quello che sembra i dati grezzi come

Ho creato un anonimo, sottoinsieme grezzo dei miei dati reale che è possibile visualizzare qui . Parte del mio problema è che coloro che hanno codificato i dati notato che alcuni studenti visualizzati più pattern. La soluzione dei programmatori era quello di creare abbastanza colonne (reason1, reason2, ...) per tenere gli studenti con più modelli. Che diventa importante perché l'ordine (reason1, reason2) è arbitraria - due studenti (come studente e studente 41 42 nel mio dataset ) che correttamente applicato "dipendenza" dovrebbe sia registro in un'analisi, indipendentemente di se 3a appare nella colonna reason o la colonna reason2.

Come posso migliore struttura Student dati?

Parte del mio problema è che nel dati grezzi , non tutti gli studenti mostrano lo stesso modelli o lo stesso numero di loro, nello stesso ordine. Alcuni studenti possono fare solo una cosa, gli altri possono fare diversi. Quindi, una rappresentazione astratta di esempio studenti potrebbe simile a questa:

Nota nell'esempio di cui sopra che student002 e student003 entrambi sono codificati come "1b", anche se ho volutamente mostrato l'ordine come diverso di riflettere la realtà di miei dati .

I miei (pratica) Domande

  1. Dovrei concatenate reason1, reason2, ... in una colonna?
  2. Come posso (ri) Codice delle reasons in R in modo da riflettere la molteplicità per alcuni studenti?

Grazie

Mi rendo conto che questa domanda è tanto di buono concettualizzazione dei dati in quanto è circa specifica dispone di R, ma ho pensato che sarebbe stato opportuno chiedere qui. Se si sente che è inappropriato per me a porre la domanda, per favore fatemelo sapere nei commenti, e StackOverflow inonderà automaticamente la mia casella di posta con emoticon sadface. Se non sono stato abbastanza specifico, per favore fatemelo sapere e farò del mio meglio per essere più chiaro.

È stato utile?

Soluzione

Lo rendono "lungo":

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

Cosa fare dopo dipenderà dal tipo di analisi che si desidera fare. Ma il formato lungo è l'utile per i dati irregolari come la vostra.

Altri suggerimenti

si dovrebbe usare ddply da plyr e divisa su tutte le colonne, se si vuole prendere in considerazione le diverse ragioni, se si vuole ignorarli non utilizzare quelle colonne in divisa. Avrai bisogno di ripulire alcuni dei punti interrogativi e materiale extra, però.

x <- ddply(data, c("split_column1", "split_column3" etc),
           summarize(result_df, stats you want from result_df))

Qual è la (più grande immagine) domanda si sta tentando di risposta? Perché queste informazioni interessa a te?

Stai solo cercando di trovare modelli come 'se lo studente fa questo, allora anche probabile che fanno questo'?

Qualcosa mi piacerebbe prendere in considerazione se questo è il caso -. Dividere il set di dati in campioni casuali più piccoli per la vostra analisi per ridurre il rischio di falsi positivi

Interessante problema però!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top