proc SQL 쿼리를 사용하여 5 개의 주제와 ID를 추출합니다. 그 id에 대한 최대 표시로 새 열을 만들고 싶습니다. 나는 아래의 쿼리를 사용하려고했습니다. 하지만 구문 오류가 있습니다.proc sql을 사용하여 최대 10 개의 변수를 찾습니다.
proc sql;
select id, m1, m2,m3,m4,m5, max(m1-m5) as max_marks from data1;
quit;
proc SQL 쿼리를 사용하여 5 개의 주제와 ID를 추출합니다. 그 id에 대한 최대 표시로 새 열을 만들고 싶습니다. 나는 아래의 쿼리를 사용하려고했습니다. 하지만 구문 오류가 있습니다.proc sql을 사용하여 최대 10 개의 변수를 찾습니다.
proc sql;
select id, m1, m2,m3,m4,m5, max(m1-m5) as max_marks from data1;
quit;
난 당신이 largest()
를 사용할 수 있다고 생각 :하지 proc sql
의 경우
proc sql;
select id, m1, m2, m3, m4, m5,
largest(m1, m2, m3, m4, m5) as max_marks
from data1;
quit;
, 당신은 확실히 데이터 단계로이 작업을 수행 할 수 있습니다.
SAS에서는'LARGEST()'함수가 다른 매개 변수를 필요로합니다. 'MAX (m1, m2, m3)'는'LARGEST (1, m1, m2, m3)'과 같습니다. – Tom
@Gordon이 지적한 것처럼, 구문 오류를 게시하는 것이 더 쉽습니다. 게시물의 구문이 정확하지만 m1에서 m5를 빼고 그 1의 값 중 최대 값을 취하는 것이 분명합니다.
바로 가기 -
을 사용하여 변수간에 최대 값을 얻으려면 of
키워드를 추가해야합니다.
max(of m1-m5)
*이 방법은 *
함수에 변수 목록을 전달하기위한 귀하의 구문이 잘못 proc sql
를 사용하지 않는 데이터 단계에서 작동합니다. SAS의 변수 목록에 변수 목록을 전달하려면 of
키워드를 사용해야합니다. MAX(of m1-m5)
.
실제로 하나 개의 매개 변수 SAS는의 최대를 찾기위한 SAS 기능 MAX(,)
에 SQL 집계 함수 MAX()
에 대한 호출이 아닌 전화로 이것을 볼 수있다) (M1 및 M5 사이 MAX 이후 차이를 계산 귀하의 코드 두 개 이상의 숫자.
PROC SQL에서 변수 목록을 사용할 수 없으므로 개별 변수를 나열해야합니다.
proc sql;
select id,m1,m2,m3,m4,m5
, max(m1,m2,m3,m4,m5) as max_marks
from data1
;
quit;
질문을 수정하고 샘플 데이터와 원하는 결과를 제공하십시오. –