Ich habe Probleme bei der Daten von weiten zu langen Format Umformung:Reshape von breit zu lange ohne Identifier
- Ich habe keine ID-Variable für die breiten Variablen.
- Mein Datensatz ist ziemlich breit. Ich habe ungefähr 7000 Variablen.
- Die Anzahl der Variablen pro ID ist nicht konstant, daher habe ich für einige IDs 5 und für andere habe ich 10 Variablen.
Ich hatte gehofft, dass dies Stata FAQ könnte mir helfen, aber das funktioniert leider nicht richtig (siehe folgende Code-Schnipsel).
So habe ich Daten, die wie im folgenden Beispiel aussieht:
clear
input str45 Year
"2010"
"2011"
"2012"
"2014"
end
input str45 A101Meas0010
"1.50"
"1.70"
"1.71"
"1.71"
input str45 A101Meas0020
"50"
"60"
"65"
"64"
input str45 A101Meas0020A
"51"
"62"
"64"
"68"
input str45 FE123Meas0010
"1.60"
"1.75"
"1.92"
"1.94"
input str45 FE123Meas0020
"60"
"72"
"88"
"92"
list
+-------------------------------------------------------------+
| Year A10~0010 A10~0020 A1~0020A FE1~0010 FE1~0020 |
|-------------------------------------------------------------|
1. | 2010 1.50 50 51 1.60 60 |
2. | 2011 1.70 60 62 1.75 72 |
3. | 2012 1.71 65 64 1.92 88 |
4. | 2014 1.71 64 68 1.94 92 |
+-------------------------------------------------------------+
Der Final Table ich so etwas wie dies aussehen würde, erreichen wollen:
+--------------------------------------------------+
| Year ID Meas0010 Meas0020 Meas0020A |
|--------------------------------------------------|
1. | 2010 A101 1.50 50 . |
2. | 2010 FE123 1.60 51 60 |
3. | 2011 A101 1.70 60 . |
4. | 2011 FE123 1.75 62 72 |
5. | 2012 A101 1.71 65 . |
6. | 2012 FE123 1.92 64 88 |
7. | 2014 A101 1.71 64 . |
8. | 2014 FE123 1.94 68 92 |
+--------------------------------------------------+
Ich habe versucht folgende Code-Schnipsel der Nähe von das Beispiel aus der Stata FAQ, aber das wirft einen Fehler:
Irgendwelche Ideen h Um dies neu zu gestalten? Ich musste nie zuvor solch eine seltsame Struktur umgestalten.
Zusätzliche Frage: Im obigen Beispiel musste ich die Measurement-Names Meas0010
, Meas0020
und Meas0020A
angeben. Ist es möglich, dies auch zu automatisieren? Alle Messungsnamen beginnen mit dem Schlüsselwort Meas
, so dass die Variablennamen immer der Struktur _ID + Meas
Name, z. A101Meas0020A
steht für ID A101
und Messung Meas0020A
.
Das Ärgerliche ist: Ich weiß, wie man das in MATLAB macht, aber ich bin gezwungen Stata hier zu verwenden.
Es ist am besten, negative Kommentare zu jeder Software zu vermeiden, wenn Sie Hilfe dazu benötigen, selbst wenn Sie sie humorvoll vorhaben. –
Cross-posted auf http://www.statalism.org/forums/forum/general-stata-discussion/general/1353074-reshape-from-wide-to-long-without-identifier-and-variable-number-of -stubs Leute über Cross-Posting zu informieren, ist in jedem Forum höflich. –
Vergessen zu erwähnen, die Cross-Post ist meine Schuld. Das tut mir leid.Aber ich habe in meinem Beitrag keineswegs über Stata gesprochen und akzeptiere daher nicht den Hinweis auf die erwähnte Kritik. Ich bin 100% fließend in MATLAB und hätte das in wenigen Minuten lösen können. Da ich in diesem Projekt keinen Zugriff auf eine MATLAB-Lizenz habe, muss ich das mit Stata lösen - eine Software, mit der ich noch nicht vertraut bin (und die ich 3 Stunden ohne Fortschritt brauchte). Verstehen Sie mich bitte nicht falsch - für bestimmte Anwendungen, an denen ich hier arbeite, gehört Stata zu den besten Tools. – EliteTUM