私は、各学生の2つの学期に選択されたコースの情報を含むテーブルを持っています。これらの学生は彼らの最初の学期を検証し、そのsemester='1st'
のためのすべてのvalid_or_not_of_semester='N'
ませんでした:変数の別の値のSAS proc freq
student semester course_selected valid_or_not_of_semester
A 1st math N
A 1st english N
A 2nd math Y
A 2nd english Y
B 1st math N
B 2nd math Y
B 2nd english Y
C 1st math N
C 2nd math N
math
(またはenglish
)を選択し、それらの学生のために最初の学期では、私は彼らがmath
を選択した場合は調査したい(またはenglish
)第二学期には、そうならば、私は彼らの第二学期を検証したりされていないものの学生の数をカウントする、クロス集計を作成するつもりです:
--------------------------------------------------------------------------
1st semester \ 2nd semester | Math | English
invalid \ |---------------------|--------------------
students \ | valid | invalid | valid | invalid
--------------------------------------------------------------------------
Math | 2 | 1 | 2 | 0
--------------------------------------------------------------------------
English | 1 | 0 | 1 | 0
--------------------------------------------------------------------------
各行は数を表します学生たち最初の学期を検証せず、最初の学期にコースを選択しました。そして、第2学期の有効期間と無効期間にコースを選択した学生は、列を分離します。具体的には、
--------------------------------------------------------------------------
1st semester \ 2nd semester | Math | English
invalid \ |---------------------|--------------------
students \ | valid | invalid | valid | invalid
--------------------------------------------------------------------------
Math | 2 | 1 | 2 | 0
| | |
\/ \/ \/
(students A&B) (student C) (students A&B)
私はPROCのSQLを試してみました:
data math;
merge have
have (where=(semester='1st') in=these);
by student;
if these then output;
run;
proc sql;
create table result as
select count(distinct student) as nb_student
from math (where=(semester='2nd'))
group by course_selected, valid_or_not_of_semester;
quit;
そしてenglish
のために同じことを行います。
しかし、2つのコースの結果を直接得る方法はありますか?どのように私はproc freqを使用できますか?
あなたの答えを得ることを願っています。