ID 변수를 여러 번 사용할 때 SAS에서 데이터를 이항하는 가장 좋은 방법이 궁금합니다. 나는 이것을하기 위해 proc transpose 문에서 let 옵션을 사용할 수 있다는 것을 알고 있지만 평균을 계산할 때 모든 데이터를 제거하고 싶지는 않습니다. 나는 (이 새로운 데이터 세트를 사용하지 않을 할SAS에서 id 변수에 대한 여러 관측치로 데이터를 변환하는 방법은 무엇입니까?
student testnum1 testnum2 testnum3 testnum4 avg12 avg34
1 30 45 67 . 33.33 67
1 25 . . . 33.33 67
2 22 63 . . 43.5 .
2 . 12 . . 43.5 .
2 . 77 . . 43.5 .
3 22 14 . 17 53 17
3 17 . . . 53 17
을 :
여기data grades;
input student testnum grade;
cards;
1 1 30
1 1 25
1 2 45
1 3 67
2 1 22
2 2 63
2 2 12
2 2 77
3 1 22
3 1 17
3 2 14
3 4 17
;
run;
proc sort data=grades;
by student testnum;
run;
proc transpose data=grades out=trgrades;
by student;
id testnum;
var grade;
run;
내가보고 내 결과 데이터 집합을하고자하는 방법이다 : 여기
내 데이터와 내 코드의 예입니다 얼마나 자주) 학생을위한 모든 testnum1 및 testnum2의 평균 점수 (avg12)와 학생을위한 모든 testenum3 및 testnum4 (avg34)의 평균 점수 인 새로운 항목을 만들 수 있습니다.이 작업을 수행하는 데 훨씬 효율적인 방법이있을 수 있지만 난 곤경에 빠져 있습니다. 모든 조언을 주시면 감사하겠습니다.
testnum을 그룹화하는 형식을 만들면 추가 변수를 만들지 않아도됩니다. Proc Means는 형식화 된 값으로 그룹화합니다. – Longfish
우수 포인트, @ 키스. 나는 그 대답을 나의 대답에 추가 할 것이다. –
고마워요, 이것은 제가하려고 한 것입니다. 나는 원래 마지막 걸릴 계획이었습니다.학생이 내 예에서 위와 같이 보이도록 데이터를 가져올 수 있다면 한 열에 avg12를, 다른 열에는 avg34를 사용하여 학생 한 줄을 남겨 둡니다. 그러나이 방법은 훌륭했습니다. 이것은 숙제 문제가 아니므로 걱정할 필요가 없습니다. – user27008