noumenal이 정확하면 두 개의 루프를 사용하면됩니다. 또 다른 방법은 원래 값을 사용하여 VECTOR
에 액세스하여이를 1로 작성하고 다른 모든 값을 0으로 설정하는 것입니다.
설명하기 위해 먼저 X1 to X4
이라는 가짜 데이터 (26 대신 4 개의 원래 변수가 있음)를 만듭니다.
*Fake Data.
SET SEED 10.
INPUT PROGRAM.
LOOP Id = 1 TO 20.
END CASE.
END LOOP.
END FILE.
END INPUT PROGRAM.
VECTOR X(4,F2.0).
LOOP #i = 1 TO 4.
COMPUTE X(#i) = TRUNC(RV.UNIFORM(1,62)).
END LOOP.
EXECUTE.
지금 어떤이 코드가 수행하는 4 개 개의 벡터는 각 변수와 함께 갈 설정 만드는 것입니다, 다음 실제로
VECTOR
스텁을 참조
DO REPEAT
를 사용합니다. 그런 다음
RECODE
와 함께 완료 - 코딩해야 누락 된 경우 2.
VECTOR V1_ V2_ V3_ V4_ (61,F1.0).
DO REPEAT orig = X1 TO X4 /V = V1_ V2_ V3_ V4_.
COMPUTE V(orig) = 1.
END REPEAT.
RECODE V1_1 TO V4_61 (SYSMIS = 2).
당신이 스텁의 모든을 작성해야합니다 원래 벡터 명령대로, 조금 고통스러운, 그러나 당신이 할 수있는 복사하여 DO REPEAT 부속 명령에 붙여 넣으십시오 (또는 매크로를 작성하여 수행하십시오). 우리는 우리의 원래의 변수가있는 경우 더 간단한 그림에 대한
, 1부터 61까지의 정수 값을 취할 수,
A
말, 우리는 우리의 61 개 더미 변수를 확장하려는, 우리는 다음을 만들 것 벡터를 선택하고 해당 벡터의 위치에 액세스하십시오. 기록의 경우
A = 10
를 들어
VECTOR DummyVec(61,F1.0).
COMPUTE DummyVec(A) = 1.
, 여기에
DummyVec10
1과 동일하며, 다른 모든
DummyVec
변수는 여전히 시스템이 기본적으로없는 것입니다. 61 값으로
DO IF
을 사용할 필요가 없습니다.
나머지 코드는 여러 원본 변수에 대해 한 번만 수행하면됩니다.
아 나는 원래 질문을 오독하고있었습니다. 61 개의 변수를 반복 할 필요는 없으며, 26 개를 순환하여 'NewVector (Orig_Integer)'를 사용하여 할당하면됩니다. –
네, 고맙습니다! – Larissa