SAS 데이터 세트에 고정 필드가 있습니다. 비용이라고합시다. 20 개의 다른 열을 만들고 싶습니다. 비용 - 5, 비용 - 10, 비용 - 15 등이 있지만 여러 필드에서이 작업을 수행해야하므로 코드를 작성하지 않으려 고합니다.SAS는 열을 작성하기 위해 루프를 수행합니다.
SAS의 do 루프에서 어떻게 할 수 있습니까? 또는 이렇게 쉬운 방법이 있다면, 나는 알고 싶습니다. 감사!
SAS 데이터 세트에 고정 필드가 있습니다. 비용이라고합시다. 20 개의 다른 열을 만들고 싶습니다. 비용 - 5, 비용 - 10, 비용 - 15 등이 있지만 여러 필드에서이 작업을 수행해야하므로 코드를 작성하지 않으려 고합니다.SAS는 열을 작성하기 위해 루프를 수행합니다.
SAS의 do 루프에서 어떻게 할 수 있습니까? 또는 이렇게 쉬운 방법이 있다면, 나는 알고 싶습니다. 감사!
일반적인 접근법은 여러 가지 작업을 수행하는 경우 배열 및 매크로를 사용하는 것입니다.
data class;
set sashelp.class;
array ages[5]; *your array, holding your 5 new columns;
do _i = 1 to 5; *loop over the array;
ages[_i] = age-_i; *or -(5*_i) or whatever you are doing;
end;
run;
그런 다음, 당신은 많은 변수에 대해, 그 네 줄을 매크로에 넣어, 변경 될 수 있습니다 어떤 매개 변수를 생성하고, datastep에서 당신이 필요하지만 여러 번 호출 것을 수행하려는 경우. 루프는 매크로 내부에 있으며 매크로 루프가 아닌 데이터 단계 루프입니다.
변수를 어레이 문에 명시 적으로 지정하거나 SAS가 기본적으로 수행하는 작업을 수행 할 수 있습니다. 지명 된 변수를 지능적으로 명명하려면 매크로를 작성하여 명명 된 변수를 작성할 수도 있습니다.
감사합니다. 나는 지금 일하고있다. 정말 고마워요 –
사실 조는 나이를 먹고 5 % 줄이고 10 % 줄이는 등의 노력을하고 있습니다.하지만 지금은 효과가 없습니다. 나는 SAS에 대해 어리 석다. 이견있는 사람? –
'나이 [_i] = 나이 * (.05 * _i);'또는 그와 비슷한 것으로 유감입니다. – Joe