2016-03-27 17 views
0

Yılın her ayı için aynı şeyi aynen yapmak için aşağıdaki kodlara makroyu nasıl ekleyebilirim? Örneğin, sourceg.trades_nov2008 de oluşturmanız gerekir. Teşekkür ederim.Her ay ayrı ayrı veri kümesi oluşturmak için SAS'da tarih değişkenine makro nasıl eklenir?

data sourceg.trades_dec2008(drop=dt); 
set sourceh.trades_: indsname=ds_name open=defer; 

dt = input(scan(ds_name, 2, "_"), date9.); 
day = day(dt); 
month = month(dt); 
year = year(dt); 

newtime=time/1000; 
format newtime time12.3; 
Hour=hour(newtime); 
Minute=minute(newtime); 
Second=second(newtime); 
run; 
+0

Çıktı veri kümesi adının yanında tarih nereden geliyor? Herhangi bir yerde kullanılmazsa, sonuçlar yineleme arasında aynı olacaktır. – Reeza

+0

trades_01jan2008 trades_02jan2008 Günlük dosyaları bu gibi adlarla eklemeye çalışıyorum. Sahip olduğum kod, onları trades_jan2008 adlı aylık bir dosyaya ekler. Ama bunu birkaç yıllık veri için yapmalıyım ve bunu bir makro ile yapmaya çalışıyorum. Teşekkür ederim. –

+0

Veri adımında ay nerede çalışıyor? Lütfen spesifik çizgiyi vurgulayın. – Reeza

cevap

1

Bir %macro monthly(date) ve kodunuzu bir %mend ekleyerek kod dışarı bir makro oluşturabilirsiniz. Ardından, ya manuel arama ya da yürütme işlemini kullanarak tekrar tekrar çağırabilirsiniz.

%macro monthly(date); 

data sourceg.trades_&date; 
*rest of sas code; 

run; 

%mend; 

%monthly(nov2008); 
%monthly(jan2008); 

Şu anki açıklamanızdan dolayı, bunun ötesinde ne önereceğime emin değilim. Arama yürütmeyi size bir egzersiz olarak bırakacağım. Ayrıca, belirli bir tarih aralığınız varsa bunun yerine bir döngü ekleyebilirdiniz, ancak durumunuzun bu olup olmadığını bilmiyorum.

+0

Tamam, teşekkür ederim, önerdiğin şeyi deneyeyim. Asıl soruda verdiğim şey, sahip olduğum bütün kod. Ne yapar, veri kümesinde bir gün, ay ve yıl değişkeni oluşturur (bunlar veri kümesinde değil, yalnızca adında, örneğin trades_01jan2008). Daha sonra, her günlük dosyayı aylık bir dosyaya ekler. Bunu farklı aylar boyunca yapmak zorunda olduğumdan beri, her ay el ile yapmadan ekleyebileceğim bir makro olup olmadığını merak ediyorum (ki bu da mümkündür). Tekrar teşekkürler. –

+0

Set cümlesi bir iki nokta üst üste kullanarak önekle başlayan tüm veri kümelerini ekler. Sahip olduklarınızı ve neyi başarmaya çalıştığınızı açıklamayı düşünebilirsiniz. Veri kümelerini birleştirmekle ilgili birçok yayın var. Daha fazla örnek için communities.sas.com adresini ziyaret edin. – Reeza

İlgili konular