Generere en dummy-variabel
Jeg har problemer med å generere følgende dummy-variabler i R:
Jeg analyserer årlige tidsseriedata (tidsperiode 1948-2009). Jeg har to spørsmål:
-
Hvordan genererer jeg en dummyvariabel for observasjon nr. 10, dvs. for år 1957 (verdi = 1 i 1957 og null ellers)?
-
Hvordan genererer jeg en dummyvariabel som er null før 1957 og tar verdien 1 fra 1957 og frem til 2009?
67
3
Et annet alternativ som kan fungere bedre hvis du har mange variabler, er
factor
ogmodel.matrix
.Dette inkluderer en intercept-kolonne (alle enere) og en kolonne for hvert av årene i datasettet, bortsett fra ett, som vil være "default" eller intercept-verdien.
Du kan endre hvordan "default" velges ved å endre
contrasts.arg
imodel.matrix
.Hvis du vil utelate skjæringspunktet, kan du bare droppe den første kolonnen eller legge til
+0
på slutten av formelen.Håper dette er nyttig.
Den enkleste måten å produsere disse dummyvariablene på er omtrent som følger:
Mer generelt kan du bruke
ifelse
til å velge mellom to verdier avhengig av en betingelse. Hvis du av en eller annen grunn ønsker å bruke for eksempel 4 og 7 i stedet for en 0-1 dummyvariabel, kan du brukeifelse(år == 1957, 4, 7)
.Det jeg vanligvis gjør når jeg arbeider med denne typen dummyvariabler, er følgende:
(1) Hvordan genererer jeg en dummyvariabel for observasjon nr. 10, dvs. for år 1957 (verdi = 1 i 1957 og null ellers)?