라는 데이터 세트에 새 열을 추가하고 싶습니다 COUNT
. 내 데이터 세트는 변수 주제를 가지고, tox1
, tox2
, tox3
서로 다른 값 (문자 변수). 주제는 내 데이터 세트에 여러 번 나타날 수 있습니다 'ADR'
. 주제 당 발생 횟수를 계산하고 싶습니다 . 내가 뭘 원하는라는 새로운 변수를 만드는 것입니다 COUNT
그 대상이 특정 값, 즉 얼마나 많은 시간 카운트 'ADR'
를 들어 tox1
, tox2
및 tox3
; SUBJECT에 해당 특정 값에 대한 관측치가 없으면 COUNT
결과가 0이되고 싶습니다 .
여기에 내가하고 싶은 데이터 세트의 예입니다 (이 예에서는, 나는의 모든 인스턴스 계산 할 "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
;
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
다음은 데이터 단계 접근 방식입니다.
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;
결과:
count subject tox1 tox2 tox3
3 1 ADR c s
3 1 ADR d f
3 1 s ADR f
3 1 a w e
0 2 d f g
2 3 e d ADR
2 3 k ADR f
5 4 N ADR ADR
5 4 Q ADR d
5 4 ADR d f
5 4 r v h
5 4 ADR f g
0 5 g f d
0 5 r t u
0 5 g h j
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다