안녕하세요 여러분!
예를 들어,이 코드는 "copydt"로 데이터를 읽고 JSL을 사용하여 한 단계에서 "copydt"의 "KATIE"를 읽는 방법에 대해 코드에서 두 단계를 사용했습니다.
dt = Open("$SAMPLE_DATA\Big class.jmp");Wait(0);
copydt = dt[0,0];
dt[0,0] = .;
a=copydt[1,1];
b=a[1,1];
c={copydt[1,1][1,1]};
dt[0,0] = copydt;Wait(0);
또한 JSL을 사용하여 "copydt"의 데이터를 직접 수정하는 방법은 무엇입니까?
예를 들어, 첫 번째 행의 이름을 "KATIE2"로 변경하고 첫 번째 행의 나이를 18로 변경하십시오.
수정 된 데이터를 원래 데이터 테이블에 씁니다.
감사!

이 논의의 주제에서 제기 된 질문에 대답하려면 데이터 테이블에서 형성된 데이터를 보유하는 변수에 첨자를 사용하십시오. 예제를 진행하면서 디버거 또는 로그를 사용하여 결과를 검사 할 수 있습니다. 로그를 사용하겠습니다.
dt = Open("$SAMPLE_DATA\Big class.jmp");
copydt = dt[0,0];
dt [0,0]에 사용 된 첨자는 모든 행과 모든 열 (전체 테이블)을 참조합니다. 변수 copydt는리스트리스트를 포함합니다. 각 하위 목록은 원본 데이터 테이블의 행입니다.
dt[0,0] = .;
누락 된 할당은 모든 행과 모든 열 (전체 테이블)에 대해 발생합니다. 데이터 테이블에는 이제 5 개의 데이터 열에 대한 40 개의 행 누락 결 측값이 있습니다.
a = copydt[1,1];
이 표현식은 표준 목록 첨자를 사용합니다. 목록에서 첫 번째 항목을 검색하고 있습니다. 값은 원래 데이터 테이블의 첫 번째 행을 나타내는 목록입니다. 리스트를 첨자 화하는 방법을 배우면이 표현이 첫 번째 요소 인 동일한 것을 두 번 요구한다는 것을 알게됩니다. 다음의 모든 표현은 동일합니다.
a = copydt[1];
a = copydt[1,1];
a = copydt[1,1,1];
따라서 첫 번째 형식이 더 간결하고 선호됩니다.
b = a[1,1];
이전 식과 동일합니다. 목록에서 첫 번째 항목을 검색하고 있습니다. 값은 원래 데이터 테이블의 첫 번째 행에있는 첫 번째 열의 문자열입니다.
c = { copydt[1,1][1,1] }; // c = { copydt[1][1] } is equivalent, sufficient, and preferred
단일 요소 목록을 변수에 지정했습니다. 목록 항목의 평가가 발생하지 않았습니다.
dt[0,0] = copydt;
전체 데이터 테이블에 목록 목록을 지정했습니다. 각 하위 목록은 데이터 테이블에서 새 행이됩니다. 이 단계는 두 번째 줄과 마지막 줄 사이의 대칭 동작을 보여줍니다.
토론 본문에서 제기 된 질문에 대답하기 위해 아래 첨자를 사용합니다.
copydt[1][1] = "Katie2";
copydt[1][2] = 18;
아래 첨자는 중첩됩니다. 그래서 읽어 copydt [1] [1] = "카티 2" 첫 번째 항목의 첫 번째 항목에 "Katie2"를 할당합니다. 읽다 카 피트 [1] [2] = 18 첫 번째 항목 내부의 두 번째 항목에 18을 할당하십시오.
데이터 테이블, matricx 및 목록 데이터 구조간에 데이터를 셔플하는 기능은 각 JMP 버전에 따라 변경됩니다. 일반적으로 기능이 향상되고 구조 간 차이가 줄어 듭니다.
그래서, 나는 당신이 한 일을 설명했지만 왜 당신이 그것을했는지 또는 당신이 달성하고자하는 것을 알지 못합니다. 당신의 주제는 매우 광범위하고 모호합니다. 뭐하고 싶어?
고르다 도움 > 서적 > 스크립팅 안내서 데이터 테이블, 목록 및 행렬에 대한 자세한 정보와 설명은 JMP에서 참조하십시오.