我需要在循環中編寫以下查詢。可能嗎 ?在if語句中反覆提交語句
if a1 > 0
or a2 > 0
or a3 > 0
or a20 > 0 then some_variable =dummy;
我不能在宏定義中反覆思考任何邏輯。問的問題只是一個快照。實際數量有所不同,直到200
我需要在循環中編寫以下查詢。可能嗎 ?在if語句中反覆提交語句
if a1 > 0
or a2 > 0
or a3 > 0
or a20 > 0 then some_variable =dummy;
我不能在宏定義中反覆思考任何邏輯。問的問題只是一個快照。實際數量有所不同,直到200
我正在外出時猜測這是sas,因爲您之前的問題是,您的問題聽起來像SAS。
如果使用常規數據步驟變量,則可以在數組中執行此操作。
data want;
set have;
array a a1-a200;
if max(of a[*]) > 0 then some_variable=dummy;
run;
max
會給你200個變量的數量最多,而如果是> 0,那麼你是好去。如果布爾條件更復雜,則可能需要遍歷數組。
是的tha語言是SAS,並感謝您的及時響應。這個答案似乎工作。但是,你能解釋一下max的背景嗎?對不起,如果我的問題太蹩腳。 – Mukul
'max()'給出了提供的一組變量中的最大值。 'max(of ...)'是你如何使用空格分隔的列表,所以,'max(a,b,c)'='max(a b c)'。 (這在大部分相似的函數中都是這樣。)'a [*]'列出了包含數組'a'的所有變量,所以'a [*] = a1 a2 a3 a4 a5 ... a200'。所以'max([*])'表示'max(a1,a2,a3,a4,a5,...,a200)'。這給了最高的價值;因爲您正在檢查的值是否超過0,所以如果最高值超過0,則至少有一個值必須超過0,否則值不能超過0. – Joe
謝謝你,真棒。它如此簡單,你怎麼把它寫進文字。 – Mukul
添加語言標籤。 –
如果[tag:sas]答案被接受,我會添加它。 – Joe