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:

  1. Hvordan genererer jeg en dummyvariabel for observasjon nr. 10, dvs. for år 1957 (verdi = 1 i 1957 og null ellers)?

  2. Hvordan genererer jeg en dummyvariabel som er null før 1957 og tar verdien 1 fra 1957 og frem til 2009?

Et annet alternativ som kan fungere bedre hvis du har mange variabler, er factor og model.matrix.

> year.f = factor(year)
> dummies = model.matrix(~year.f)

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 i model.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.

Kommentarer (10)

Den enkleste måten å produsere disse dummyvariablene på er omtrent som følger:

> print(year)
[1] 1956 1957 1957 1958 1958 1959
> dummy  print(dummy)
[1] 0 1 1 0 0 0
> dummy2 = 1957)
> print(dummy2)
[1] 0 1 1 1 1 1

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 bruke ifelse(år == 1957, 4, 7).

Kommentarer (0)

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)?


data$factor_year_1 
Kommentarer (0)