我想向名为COUNT
的数据集添加新列。我的数据集有一个变量主题tox1
,tox2
,tox3
(字符变量),具有不同的值。一个主题可以在我的数据集中出现多次,我想计算每个主题'ADR'
的出现。我想做的是创建一个名为COUNT
的新变量,该变量计算对象具有特定值的次数,即'ADR'
,tox1
和tox2
的特定值;当SUBJECT没有观察到该特定值时,我希望tox3
的结果为零。
这是我想要的数据集的一个示例(在此示例中,我想将每个COUNT
的"ADR"
的每个实例都计为SUBJECT
。]
COUNT
INPUT subject $ tox1 $ tox2 $ tox3 $;
datalines;
1 ADR c s
1 ADR d f
1 s ADR f
1 a w e
2 d f g
3 e d ADR
3 k ADR f
4 N ADR ADR
4 Q ADR d
4 ADR d f
4 r v h
4 ADR f g
5 g f d
5 r t u
5 g h j
;
THIS IS INPUT DATASET
SUBJECT TOX1 TOX2 TOX3 COUNT
1 ADR c s 3
1 ADR d f 3
1 s ADR f 3
1 a w e 3
2 d f g 0
3 e d ADR 2
3 k ADR f 2
4 N ADR ADR 5
4 Q ADR d 5
4 ADR d f 5
4 r v h 5
4 ADR f g 5
5 g f d 0
5 r t u 0
5 g h j 0
这里是数据步骤方法
THIS IS THE REQUIRED OUTPUT FOR COUNT VARIABLE
结果:
data have;
INPUT subject $ tox1 $ tox2 $ tox3 $;
datalines;
1 ADR c s
1 ADR d f
1 s ADR f
1 a w e
2 d f g
3 e d ADR
3 k ADR f
4 N ADR ADR
4 Q ADR d
4 ADR d f
4 r v h
4 ADR f g
5 g f d
5 r t u
5 g h j
;
data want (drop = i);
count = 0;
do _N_ = 1 by 1 until (last.subject);
set have;
by subject;
array tox {3};
do i = 1 to dim(tox);
if tox [i] = 'ADR' then count = sum(count, 1);
end;
end;
do _N_ = 1 to _N_;
set have;
output;
end;
run;