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:
-
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)?
-
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?
67
3
Çok sayıda değişkeniniz varsa daha iyi çalışabilecek başka bir seçenek de
factor
vemodel.matrix
tir.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.matrix
içindeki
contrasts.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.
Bu kukla değişkenleri üretmenin en basit yolu aşağıdaki gibi bir şeydir:
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.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)