Wie kann ich in Stata eine nachlaufende Zählung für Binärdaten erstellen?

StackOverflow https://stackoverflow.com//questions/25006193

  •  20-12-2019
  •  | 
  •  

Frage

In Stata habe ich derzeit einen Datensatz, der wie folgt aussieht:

enter image description here

Ich versuche, in Spalte B einen „nachgestellten Zähler“ zu erstellen, der so aussieht:

enter image description here

Hier beginnt der Zähler bei 1 und jedes Mal, wenn in A eine „1“ erscheint, addiert B einen Wert hinzu.

Das scheint sehr einfach zu sein, aber ich bin mir nicht sicher, wie ich das genau machen soll.Folgendes habe ich bisher gemacht:

Angenommen, die Spalte A heißt in Stata „A“,

Ich benutze:

gen B = A + A[_n - 1]

Aber das bringt mich etwas aus der Fassung.Ich bin mir nicht sicher, wie ich vorgehen soll. Hat jemand Tipps?

War es hilfreich?

Lösung

Hier ist eine Möglichkeit:

clear all
set more off

*----- example data -----

input ///
var1
0
0
0
0
1
0
0
1
0
0
0
end

list, sep(0)

*----- what you want -----

gen counter = sum(var1) + 1

list, sep(0)

Der sum() Die Funktion gibt Ihnen eine kumulative Summe.Sehen help sum().Dies ist eine sehr grundlegende Stata-Funktion.A search sum hätte dich schnell dorthin gebracht.

Ihr Ansatz schlägt fehl, weil Sie für jede Beobachtung nur den „aktuellen“ Wert von addieren A mit dem vorherigen Wert seiner selbst.Das Könnte klingen wie eine kumulative Summe, aber denken Sie darüber nach und Sie werden sehen, dass dies nicht der Fall ist.

Mit Ihrem Code und meinen Daten wäre das Ergebnis:

     +----------------+
     | var1   counter |
     |----------------|
  1. |    0         . |
  2. |    0         0 |
  3. |    0         0 |
  4. |    0         0 |
  5. |    1         1 |
  6. |    0         1 |
  7. |    0         0 |
  8. |    1         1 |
  9. |    0         1 |
 10. |    0         0 |
 11. |    0         0 |
     +----------------+

Die erste Beobachtung für counter wird vermisst (.).Das liegt daran, dass es keinen vorherigen Wert für die erste Beobachtung von gibt var1, also macht Stata so etwas wie var1[1] + var1[0] = 0 + . = ..

Die zweite Beobachtung für counter Ist var1[2] + var1[1] = 0 + 0 = 0.

Die fünfte Beobachtung für counter Ist var1[5] + var1[4] = 1 + 0 = 1.

Die siebte Beobachtung für counter Ist var1[7] + var1[6] = 0 + 0 = 0.Und so weiter.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top