2015-06-15 3 views
0

Мы будем получать серию высококачественных кодов заказов во время пикового часа дня с 9:00 до 10:00. Все заказы записываются в постоянный набор данных ORDERS. Теперь мы должны установить приоритет порядка 1 только для заказов высокого профиля.SAS: чтение данных и данных из набора данных вместе на этапе DATA

Я захватывая 5 интервалов часа и соответствующий высокий профиль кода в течение этого часа, используя ниже код:

data orders; 
input time PROF_CODE $ ; 
datalines; 
900 A1 
936 R2 
948 BQ 
960 AJ 
900 CT 
936 A1 
936 R2 
924 BQ 
900 AJ 
912 CT 
; 

data profile_orders; 
set orders; 
array profile_code {900:960, 5} _temporary_; 
array HPC_CODE{5} $ _temporary_ ('AJ', 'BQ', 'CT', 'A1', 'R2'); 

do i = 900 to 960 by 12 ; 
    do j = 1 to 5 by 1 ; 
     if _n_ = 1 then 
     input profile_code(i,j) @; 
    end; 
end; 
drop i j; 

datalines; 
5 8 3 7 11 
6 44 54 88 1 
4 7 3 77 9 
3 4 3 4 9 
91 3 8 0 12 
; 

У меня есть набор данных времени для того, код и детали заказа. Я должен установить флаг proriry только для заказов, которые пришли в это время, и с кодом, соответствующим из постоянного набора данных и из приведенных выше данных. Могу ли я прочитать постоянный набор данных из вышеупомянутого шага данных вместе с данными? Этот порядок кодов меняется каждый день, который мы получаем по электронной почте. Поэтому мы хотим читать коды только от datalines.

Значения массива: profile_code -> (900,1): 5, (900,2): 8, (900,3): 3, (900,4): 7, (900,5): 11 (912,1): 6, (912,2): 44, (912,3): 54, (912,4): 88, (912,5): 1 (924,1): 4, (924,2): 7, (924,3): 3, (924,4): 77, (924,5): 9 (936,1): 3, (936,2): 4, (936 , 3): 3, (936,4): 4, (936,5): 9 (948,1): 91, (948,2): 3, (948,3): 8, (948,4): 0, (948,5): 12

Ожидаемые результаты:

910 А1 7 936 R2 9 948 BQ 4 960 AJ. . .

(Я установил интервалы времени до ближайшего интервала 12-й минуты во входных наборах данных).

+0

Проще говоря, на мой вопрос, могу ли я прочитать постоянный набор данных и datalines с того же шага DATA? –

+0

Да, вы можете прочитать постоянный набор данных и datalines с того же шага данных. – Reeza

+0

@reeza, не могли бы вы предоставить какие-либо образцы? –

ответ

1

Это будет чтение данных и набора данных, однако вывод может быть не таким, каким вы хотите.

data want; 
set sashelp.class; 
input name2 $ age2; 
cards; 
Sigma 13 
Beta 14 
Alpha 18 
; 
run; 
+0

Спасибо Reeza. Здесь он работает. В моем требовании я должен прочитать набор данных, чтобы получить соответствующие заказы, переданные в datalines для соответствующего таймфрейма и кода клиента высокого профиля.В этом случае я не могу прочитать набор данных, когда я устанавливаю оператор set, profile_orders становится пустым. Обновлен код в моем вопросе. Мой желаемый результат состоит в том, чтобы получить счетчики вроде: 910 A1 имеет 11 порядков, которые считываются 5-м элементом из первой строки данных -> 5 8 3 7 11 –

Смежные вопросы