2013-06-01 27 views
6

SAS'ta tüm eksik değerleri sıfırlarla nasıl değiştirirsiniz? Bazı coğrafi verileri işlemek için SAS'a döktüğüm bir metin dosyası var, ancak eksik bir değeri olduğunda işlemleri bozuyor. Her alanı belirtmeden bunu değiştirmenin bir yolu var mı?Eksik değerleri SAS'ta değiştir

data geo_cali_north; 
set geo_cali_north; 
if polar_data eq . then 0; 
if lat_xvar eq . then 0; 
run; 

Nasıl her alan için bunu önleyebilirsiniz: Yaptığım yolu böyledir

200 üzerinde var mı? Sen ile 0'a tüm eksik değerleri ayarlayabilirsiniz

cevap

16

böyle: ""

data myData; 
set myData; 
array a(*) _numeric_; 
do i=1 to dim(a); 
if a(i) = . then a(i) = 0; 
end; 
drop i; 

Bu, herhangi bir sayısal dönüştürür Bir 0

+0

Bu harika çalışıyor! teşekkür ederim! –

+1

no problem :) Eğer yararlı bulursanız lütfen bu soruları cevaplamayı ve kabul etmeyi düşünün, böylece diğer kullanıcılar için yararlı olmaya devam edin. – isJustMe

+2

Hafif bir değişiklik önerebilirim; yerine, eğer (i) -.... 'daha iyi bir çözüm ise: a [i] = birleşme (a [i], 0);'; Buna ek olarak özel atıklar (.A .B .Z vb.) için çalışacaktır. eksik. (MISSING işlevi bunu yapardı, bu biraz daha hızlı inanıyorum.) Coalesce, bir ilk değerler listesinden ilk işten çıkarma değerini döndürür. – Joe

7

başka seçeneğe:

proc stdize data=mydata reponly missing=0 out=newdata; 
var _numeric_; 
run; 

Büyük veri setleri için datastep seçeneği daha muhtemelen daha hızlı SAS/STAT varsa

.

+0

Bu sütundaki tüm değerler eksikse işe yaramaz. – Lovnlust

İlgili konular