JMP 14에서 열을 복제하는 가장 빠른 방법이 무엇인지 잘 모르겠습니다.
동일한 정보(데이터, 메타데이터, 수식)이지만 헤더가 다릅니다(예: 열 이름 복사).
이 코드 스니펫은 현재 선택된 열의 이름을 반환합니다.
colName = (current data table() << get selected columns)[1];
이것을 사용하는 사람들을 위한 참고 사항 - 나는 이 기능을 주기적으로 사용해 왔지만 더 큰 데이터 테이블(>100k 행)에 jmp를 걸었습니다. 철저하게 디버깅하지는 않았지만 여기에서 열 스레드 복제를 찾았습니다(대신 char() 스크립트 변환 및 대체 없음을 제외하고는 기본적으로 동일합니다. 대신 식을 사용하여 이름 지정을 설정하고 있습니다).나는 그것을 기반으로 무언가를 사용하도록 추가 기능을 전환하고 있으며 충돌 가능성이 적기를 바랍니다.
https://community.jmp.com/t5/Discussions/clone-a-column/td-p/15644
가장 쉬운 방법은 eval(:col << Get Script)를 사용하는 것입니다.고유한 이름을 지정하기 위해 끝에 정수가 있는 열의 복사본을 얻게 됩니다.작업을 수행하려는 테이블이 현재 테이블인지 확인해야 합니다.
다음은 결과 새 열의 이름을 지정하고 데이터 테이블을 지정할 수 있는 스크립트에서 사용할 수 있는 편리한 함수입니다.유일한 필수 인수는 첫 번째 인수인 colname입니다.데이터 테이블을 지정할 수 있지만 그렇지 않으면 현재 데이터 테이블()로 가정합니다.이름을 지정하지 않으면 원래 열 이름 + " - Copy"를 반환합니다.
Names Default to Here(1);
DupCol = function({colname, new = "", dt = Current Data Table() },
col = Column(dt, colname);
if(IsMissing(new), new = colname||" - Copy");
col_script = char(col << Get Script);
col_script = substitute(col_script, "New Column", "dt << New Column");
col_script = substitute(col_script, colname, new);
eval(parse(col_script));
);
Football 샘플 데이터(및 함수의 견고성을 보여주기 위한 Big Class)를 사용하여 설명하겠습니다.
football_dat = Open("$SAMPLE_DATA/Football.jmp");
DupCol("Height"); //Produces copy of Height named "Height - Copy"
DupCol("Height", new = "Height Again"); //Produces copy of Height named "Height Again"
Open("$SAMPLE_DATA/Big Class.jmp"); //just to show robustness since this data table also has a column named "height"
//Different ways to specify the data table if not wanting to assume Current Data Table
DupCol("Height", new = "Height Once More", dt = Data Table("Football") );
DupCol("Height", new = "Height Last Time", dt = football_dat );
감사해요. 더 좋은 방법이 없다면 스크립팅은 확실히 옵션입니다.
포인트 앤 클릭 관점에서 내가 아는 가장 짧은 방법은 여전히 2단계 프로세스입니다.일반적인 Ctrl+C/Ctrl+V 작업을 사용하여 데이터를 복사/붙여넣기합니다.복제하려는 열의 열 헤더를 마우스 오른쪽 버튼으로 클릭 > 열 속성 복사, 새 복사 열을 마우스 오른쪽 버튼으로 클릭 > 열 속성 붙여넣기로 메타 데이터(열 속성)를 복사/붙여넣기합니다.