2013-11-01 3 views
0

У меня есть таблица этой формыКак подсчитать переменную в строке в sas?

id1|A| 
id1| |var1 
id1|B|var2 
id2|C| 

Я хотел бы рассчитывать получить данные, которые имеют всю необходимую информацию для всех переменных: т.е.

id1|B|var2 

выполнить эту задачу, я хочу, чтобы подсчитать число наблюдений в каждой строке и принимать только те строки, которые имеют полное наблюдение:

id|name|age |cntrow 

id1| A | |2 
id1| |var1|2 
id1| B |var2|3 
id2| C | |2 

Любое предположение, как выполнить эту задачу?

ответ

0

n функция будет работать, если бы это было числовыми. Поскольку данные не являются, вы можете использовать CMISS, чтобы узнать, сколько не хватает:

data have; 
infile datalines dlm='|'; 
input 
id $ charvar1 $ charvar2 $ numvar; 
vars_missing = cmiss(of _all_)-1; *because vars_missing is also missing at this point!; 
put _all_; 
datalines; 
id1|A| |3 
id1| |var1|2 
id1|B|var2|. 
id2|C| |2 
;;;; 
run; 

А затем вычесть, что из известного числа переменных. Если вы этого не знаете, вы можете создать _CHARACTER_ и _NUMERIC_ массивы и использовать dim() для тех, кто это узнает.

1

Вы можете использовать функцию CMISS. Что-то вдоль линий:

Data nomissing missing; 
    Set input_dataset; 
    if CMISS(of _ALL_)=0 then output nomissing; 
    if CMISS(of _ALL_)>0 then output missing; 
run; 
+0

действительный ответ как. благодаря – DJJ

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