JSL에서 연관 배열을 만든 다음 해당 배열을 사용하여 다른 열의 항목을 기반으로 열을 채우는 수식으로 데이터 테이블에 새 열을 만든다고 가정합니다.
데이터 테이블이 저장되면 연관 배열을 어딘가에 유지하는 것처럼 보입니다. 어디에 저장됩니까? 어딘가에 데이터 테이블 내? 나중에 보거나 수정할 수 있는 방법이 있나요?
연관 배열은 변수가 지워지거나 이름 공간이 닫히거나 JMP 세션이 닫힐 때까지 RAM 메모리에 저장됩니다.어레이가 저장되고 있다고 생각하게 만드는 것은 몇 가지입니다.
- 데이터 테이블을 열면 데이터 테이블이 저장되었을 때 존재했던 수식 열의 값이 표시됩니다.이를 달성하기 위해 수식이 실행되지 않고 마지막 값이 열과 함께 저장된 것으로 나타납니다.그러나 데이터 테이블에 새 행을 추가하려고 하면 수식이 강제로 실행되고 오류가 표시됩니다.
- JMP 세션을 닫지 않고 데이터 테이블을 저장하고 닫았다가 다시 열면 수식이 RAM 메모리에 남아 있는 배열을 찾을 수 있습니다.따라서 수식을 실행할 수 있습니다.
일반적으로 연관 배열과 같은 항목이 필요한 수식을 처리하는 방법은 배열 생성을 수식에 추가하여 수식이 처음 실행될 때만 실행하는 것입니다.실제 간단한 예는 다음과 같습니다.
연관 배열이 이 수식으로 생성된 경우.
myArray = associative array(:age << get values);
그런 다음 수식에서 작동하게 하려면 수식이 첫 번째 행을 실행할 때만 이 코드를 실행하도록 지정하여 모든 행에서 사용할 수 있도록 합니다.
If( Row() == 1,
myArray = Associative Array( :age << get values )
);
이 JSL을 수식의 첫 번째 항목으로 사용하면 수식이 작동합니다.