데이터 테이블 작업(예: 스택, 분할 등) 속도를 높이는 방법은 무엇인가요?저는 종종 수백만 개의 행이 있는 매우 큰 테이블을 쌓아서 몇 가지 작업을 수행한 다음 테이블을 분할해야 합니다.
JSL 코드에서 "보이지 않는" 데이터 테이블을 사용하는 것 외에 이 모든 과정을 가속화할 수 있는 다른 방법은 무엇일까요?
저는 '데이터 업데이트 시작/종료' 명령어를 알고 있지만, 이 명령어가 여기에 적합한지, 또는 보이지 않는 테이블을 사용하는 것보다 나은 점이 있는지 확신이 서지 않습니다.
자동화 및 스크립팅제목: 데이터 테이블 작업(예: 스택, 분할 등) 속도를 높이는 방법은 무엇인가요?인비저블(또는 프라이빗)은 좋은 시작점이며, 그 다음에는 테이블 상황에 따라 크게 달라집니다. 경우에 따라서는 스플릿/스택을 피할 수도 있습니다.
제목: 데이터 테이블 작업(예: 스택, 분할 등) 속도를 높이는 방법은 무엇인가요?제 목표 는 동일한 열을 나타내는 열들을 병합하는 것입니다. 즉, 같은 열을 나타내는 열들을 하나로 합치고 싶습니다. 첨부된 예시 표에서 나이, 몸무게, 키 열이 각각 두 개의 열에 걸쳐 표현되어 있습니다. 목표는 이러한 열 쌍들을 모두 병합하는 것입니다.
원래는 열을 쌓아서 관련 부분(나이/몸무게/키)을 잘라낸 다음 다시 분할하는 방식을 사용했지만, 데이터 테이블이 매우 커지면 이 방법이 문제가 됩니다.
제목: 데이터 테이블 작업(예: 스택, 분할 등) 속도를 높이는 방법은 무엇인가요?
쿼리 빌더를 사용해 보셨나요?
죄송합니다, 제가 질문을 잘못 이해했습니다. 쿼리 빌더는 이 경우에 도움이 되지 않을 것 같습니다.
제목: 데이터 테이블 작업(예: 스택, 분할 등) 속도를 높이는 방법은 무엇인가요?Names Default To Here(1);
dt = Open("$DOWNLOADS/example_input.jmp");
valid_cols = 4;
m = dt[0,0];
r = Transform Each({vals}, m,
nonmissing = Where(!IsMissing(vals));
vals[nonmissing];
);
dt[0, 1::valid_cols] = r;
dt << Delete Columns(valid_cols::N Cols(dt));
제목: 데이터 테이블 작업(예: 스택, 분할 등) 속도를 높이는 방법은 무엇인가요?그리고 만약 데이터가 실제로 이런 모습이라면
- "중복" 열을 선택하세요
- 해당 열에 ID 열을 추가하여 부분집합을 만드세요(ID 열이 없으면 새로 만들어야 할 수도 있습니다).
- 결측값이 있는 행을 삭제하세요.
- 두 테이블의 열 이름을 동일하게 변경하고 (불필요한 열은 삭제하세요)
- ID 열을 사용하여 원본 테이블에서 Update 메서드를 사용합니다.
- 부분집합을 닫습니다