Zusammenfassung von Spalten und Restrukturierung

Fragen zu Stata Syntax und Do-Files.

Zusammenfassung von Spalten und Restrukturierung

Beitragvon bromelius » Do 28. Nov 2013, 15:25

Hallo,

derzeit habe ich Daten in folgendem Format vorliegen:

**
clear
input level q1 q2 q3
2 2.05 . .
2 . 3.01 .
2 . . 0.75
3 1.99 . .
3 . 1.86 .
3 . . 0.44
4 1.21 . .
4 . 4.22 .
4 . . 2.55
end
**

allerdings würde ich die Daten wie folgt benötigen:

**
clear
input level q1 q2 q3
2 2.05 3.01 0.75
3 1.99 1.86 0.44
4 1.21 4.22 2.55
end
**

also die Werte von q1 bis q3 auf einer Zeile zusammengefasst, da ein Wert bei q2 auf Level 2 bedeutet, dass dann bei q1 und q3 kein Wert steht.

Zweitens würde ich gern noch einen datensatz erstellen, bei dem der Level irrelevant wird, d.h. alle Werte aller Fragen nebeneinander stellen, damit ich später z.B. Korrelationen zwischen den Levels berechnen kann.

Ist diese Form der Restrukturierung möglich?
bromelius
 
Beiträge: 43
Registriert: Sa 1. Okt 2011, 17:20
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Zusammenfassung von Spalten und Restrukturierung

Beitragvon daniel » Do 28. Nov 2013, 18:11

Schöne replizierbare Fragestellung.

Mein Vorschlag: die q? zusammenfassen, dann -reshape-n.

Code: Alles auswählen
clear
input level q1 q2 q3
2 2.05 . .
2 . 3.01 .
2 . . 0.75
3 1.99 . .
3 . 1.86 .
3 . . 0.44
4 1.21 . .
4 . 4.22 .
4 . . 2.55
end

g q = q1
forv j = 2/3 {
   replace q = q`j' if mi(q)
}
drop q?
bys level : g j = _n
reshape wide q, i(level) j(j)
l
Stata is an invented word, not an acronym, and should not appear with all letters capitalized: please write “Stata”, not “STATA”.
daniel
 
Beiträge: 1060
Registriert: Sa 1. Okt 2011, 17:20
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Zusammenfassung von Spalten und Restrukturierung

Beitragvon bromelius » Do 28. Nov 2013, 19:51

Hallo Daniel,

Stata ist schon aus für heute, ich probiere das mal aus, aber die q darf man nicht zusammenfassen, d.h. alle Originalwerte müssen erhalten werden. Ich werde morgen noch mal ein Beispiel für die Originaldaten machen, denn das von mir gegebene Beispiel sind schon veränderte Daten und vielleicht lässt sich da ja noch was besser machen. Evtl klappt's ja schon mit deinem Vorschlag, den ich mir morgen früh direkt ansehen werde. Danke schon mal für deinen Vorschlag.

Brome
bromelius
 
Beiträge: 43
Registriert: Sa 1. Okt 2011, 17:20
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Zusammenfassung von Spalten und Restrukturierung

Beitragvon bromelius » Fr 29. Nov 2013, 11:23

Hallo Daniel,

hier nun mein komplettes Problem, evtl. funktioniert die Lösung ja wie gesagt auch anders.

Ich habe folgende Urdaten (und ich glaube ich hatte das gestern evtl. leicht falsch beschrieben):

die Variablen q1 und q2 bilden einen inhaltlichen Block auf einem bestimmten Level und sind auf keinem anderen Level enthalten, gleiches gilt für q3 und q4, welche nur auf Level 3 zu finden sind. In meinen Originaldaten habe ich ca. 205 Variablen, die allerdings nicht mit q1 etc. beschrifttet sind, sondern praktisch immer wieder anders, nur inhaltlich weiß man welche zusammengehören.

**
clear
input frage level wert
q1 2 2.05
q1 2 3.01
q2 2 1.00
q2 2 2.21
q3 3 1.99
q3 3 1.86
q3 3 0.44
q3 3 1.21
end
**

mit diesen Urdaten habe ich folgendes getan:

**
gen id = _n
reshape wide wert, i(id level) j(frage) string
drop id
renpfix wert
**

wie man sieht werden die Spalten versetzt, was nicht ganz mein Ziel ist. Ich hätte gern, dass die Werte für die Frage q1 und q2 auf level 2 nebeneinander stehen (also z.B. für Korrelationsanalysen verwendet werden können), die für q3 und q4 versetzt, aber wiederum für Level 3 nebeneinander usw.

Das wäre mein erstes Problem.

Problem Nr. 2: gesetzt dem Fall der Level ist egal, würde ich gern alle Fragen nebeneinander haben.

Danke im Voraus
-Brome
bromelius
 
Beiträge: 43
Registriert: Sa 1. Okt 2011, 17:20
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Zusammenfassung von Spalten und Restrukturierung

Beitragvon daniel » Fr 29. Nov 2013, 17:45

Verstehe ich nicht ganz. Ich weiß, sonst frage ich immer nach Datenstruktur -- die haben wir gesehen -- kannst Du inhaltlich mehr dazu sagen? Woher kommen die Daten, also was ist mit einer Zeile gemeint? Eine Person, eine Frage, sonst etwas? Was ist der Level?

Ergänzend: Was genau passt an diesen Vorschlägen nicht?

Code: Alles auswählen
clear
input str2 frage level wert
"q1" 2 2.05
"q1" 2 3.01
"q2" 2 1.00
"q2" 2 2.21
"q3" 3 1.99
"q3" 3 1.86
"q3" 3 0.44
"q3" 3 1.21
end
l

bys level : g j =_n
reshape wide frage wert ,i(level) j(j)
l


Code: Alles auswählen
clear
input str2 frage level wert
"q1" 2 2.05
"q1" 2 3.01
"q2" 2 1.00
"q2" 2 2.21
"q3" 3 1.99
"q3" 3 1.86
"q3" 3 0.44
"q3" 3 1.21
end
l

drop frage
bys level : g j =_n
reshape wide wert ,i(level) j(j)
l
Stata is an invented word, not an acronym, and should not appear with all letters capitalized: please write “Stata”, not “STATA”.
daniel
 
Beiträge: 1060
Registriert: Sa 1. Okt 2011, 17:20
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Zusammenfassung von Spalten und Restrukturierung

Beitragvon bromelius » Mo 2. Dez 2013, 14:08

Hallo Daniel,

beide Vorchläge sind leider nicht das was ich brauche.

Ich möchte als Ziel die Werte der jeweiligen Fragen miteinander korrelieren, benötige als immer - so wie bereits bei meinem Biespiel zuvor - die Fragen als Variablen in einer Spalte. Eine Zeile ist praktisch fix, d.h. diese darf nicht kumuliert werden o.ä. Was genau diese Zeile bedeutet weiß ich leider nicht, nur die Vorgabe, was damit gemacht werden soll, ist klar: korrelationen bestimmter Fragen untereinander hinsichtlich des Werts und Reliabilitäsanalse bestimmter Fragen untereinander.
Deine beiden Beispiele bringen die Frage leider nicht als Variable in die Spalte, d.h. pro Frage eine neue Variable...

Mein erster Syntax ist beinahe perfekt:

**
clear
input str3 frage level wert
q1 2 2.05
q1 2 3.01
q2 2 1.00
q2 2 2.21
q3 3 1.99
q3 3 1.86
q3 3 0.44
q3 3 1.21
end
l

gen id = _n
reshape wide wert, i(id level) j(frage) string
drop id
renpfix wert
**

Nur dass ich m Ende q1 und q2, da diese auf dem gleichen Level sind, auch nebeneinander und nicht versetzt stehen haben möchte.
bromelius
 
Beiträge: 43
Registriert: Sa 1. Okt 2011, 17:20
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Zusammenfassung von Spalten und Restrukturierung

Beitragvon bromelius » Mo 2. Dez 2013, 17:05

Problem gelöst:

**
clear
input q1 q2
2.05 .
3.04 .
1.00 .
. 2.22
. 3.44
. 2.21
end
**
foreach x of varlist q1 q2 {
replace `x' = `x'[_n+3] in 1/3
drop in 4/6
}
bromelius
 
Beiträge: 43
Registriert: Sa 1. Okt 2011, 17:20
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post


Zurück zu Stata Syntax

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste