Bir kukla değişken oluşturun

R'de aşağıdaki kukla değişkenleri oluşturmakta sorun yaşıyorum:

Yıllık zaman serisi verilerini analiz ediyorum (1948-2009 dönemi). İki sorum var:

  1. Gözlem #10 için, yani 1957 yılı için nasıl bir kukla değişken oluşturabilirim (değer = 1957'de 1 ve aksi takdirde sıfır)?

  2. 1957'den önce sıfır olan ve 1957'den itibaren 2009'a kadar 1 değerini alan bir kukla değişkeni nasıl oluşturabilirim?

Çok sayıda değişkeniniz varsa daha iyi çalışabilecek başka bir seçenek de factor ve model.matrixtir.

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

Bu, bir kesişim sütunu (hepsi bir) ve veri setinizdeki yılların her biri için bir sütun içerecektir; bu sütun "varsayılan" veya kesişim değeri olacaktır.

Model.matrixiçindekicontrasts.arg` ile oynayarak "default"'un nasıl seçildiğini değiştirebilirsiniz.

Ayrıca, kesişme noktasını atlamak istiyorsanız, sadece ilk sütunu bırakabilir veya formülün sonuna +0 ekleyebilirsiniz.

Umarım bu faydalı olur.

Yorumlar (10)

Bu kukla değişkenleri üretmenin en basit yolu aşağıdaki gibi bir şeydir:

> 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

Daha genel olarak, bir koşula bağlı olarak iki değer arasında seçim yapmak için ifelse kullanabilirsiniz. Yani 0-1 kukla değişken yerine, herhangi bir nedenle, örneğin 4 ve 7 değerlerini kullanmak isterseniz, ifelse(year == 1957, 4, 7) kullanabilirsiniz.

Yorumlar (0)

Normalde bu tür kukla değişkenlerle çalışmak için yaptığım şey şudur:

(1) #10 numaralı gözlem için, yani 1957 yılı için nasıl bir kukla değişken oluşturabilirim (değer = 1957'de 1 ve aksi takdirde sıfır)


data$factor_year_1 
Yorumlar (0)