열 복제<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />안녕 모두,
데이터 테이블의 열을 복제하고 싶습니다(이름을 제외한 모든 열에서 동일한 새 열 만들기). 이 작업을 수행하는 더 매끄럽고 강력한 방법이 있습니까, 아니면 값과 모든 속성을 추출하여 다음과 같이 새 열에 할당해야 합니까?
dt3 = 열려 있는 ( "$SAMPLE_DATA/Cars.jmp" ) ;
// 열 속성 추가
dt3 : 만들다 << 속성 설정 (
"값 색상" ,
{ "아큐라" = - 13977687 , "아우디" = - 3780931 , "BMW" = - 4222943 , "뷰익" = -
13596966 , "캐딜락" = - 2211217 , "쉐보레" = - 10562780 , "크라이슬러" = -
13156647 , "다이하츠" = - 2078390 , "다지" = - 13182413 , "독수리" = - 9549600 ,
"포드" = - 2334147 , "지오" = - 13772446 , "혼다" = - 9282864 , "현대" = -
6995852 , "인피니티" = - 1524612 , "이스즈" = - 9458080 , "지프" = - 14452073 ,
"렉서스" = - 6391856 , "링컨" = - 2745505 , "마쓰다" = - 10199751 , "메르세데스" =
- 7150697 , "수은" = - 10513726 , "미쓰비시" = - 8381519 , "닛산" = -
3502441 , "올즈모빌" = - 3615440 , "푸조" = - 13925307 , "플리머스" = -
11502354 , "폰티악" = - 7449196 , "르노" = - 9229791 , "사브" = - 4074344 ,
"토성" = - 13050224 , "스바루" = - 12565885 , "스즈키" = - 2068529 , "토요타" =
- 4494272 , "폭스바겐" = - 11824110 , "볼보" = - 8734293 , "유고" = - 13849421 }
) << 값으로 셀 색상 지정 ;
// 컬럼 복제
clone_column = dt3 : 만들다 << 스크립트 가져오기 ;
clone_column ;
Re: 컬럼 복제아니, 그 해석은 완전히 틀렸다.
JMP 스크립팅에는 일반적으로 데이터 테이블, 데이터 열 또는 분석 플랫폼과 같은 기본 제공 JMP 개체 사용이 포함됩니다. 원하는 작업을 나타내는 개체에 메시지를 보내 이러한 개체를 사용합니다. 일반 형식은 실제 JMP 함수를 사용하는 것과 동등한 연산자를 사용하는 두 가지 버전으로 여기에 표시됩니다.
Send( object, message );
object << message;
개체는 참조 값으로 표시됩니다. 메시지는 이름으로 표시됩니다. 이 예는 다음과 같은 방식으로 해석됩니다.
dt3:Make << Get Script
메시지 보내기 스크립트 받기 라고 하는 객체에 dt3:만들기 . 이 참조는 형식을 사용합니다. 표:열 . 데이터 테이블에 대한 참조가 이전에 변수에 저장되었습니다. dt3 . 열에 대한 참조는 이름입니다.
메시지 스크립트 받기 모든 JMP 개체로 보낼 수 있습니다. 이 메시지 뒤에 있는 'getter' 메서드는 원래 개체를 다시 생성할 스크립트를 반환하기 위해 각 개체에 의해 재정의됩니다. 즉, 개체를 복제할 코드를 반환합니다. 따라서 항상 동일한 메시지를 사용하여 모든 개체에 대한 고유 코드를 얻을 수 있습니다.
Re: 컬럼 복제설명과 빠른 답변 감사합니다. Get은 jmp에 '내장'되어 실행되는 스크립트의 이름이라고 생각합니다. 그렇지 않으면 다른 작업을 수행하는 대신 열을 복제하는 방법을 어떻게 알 수 있습니까? 귀하의 답변에서 많은 것을 배웠습니다.
Re: 컬럼 복제표현식이 평가되는 순서대로 해결해 봅시다.
dt3:Make << Get script
이 메시지는 JMP가 동일한 열을 생성하는 JSL 코드를 반환하게 합니다.
Eval(dt3:Make << Get script)
JSL 코드가 평가되어 원본 :Make 열의 복사본인 새 데이터 열이 생성됩니다. Eval() 함수는 새 열에 대한 참조도 반환합니다.
Eval(dt3:Make << Get script) << set name("Clone");
마지막으로 개체 참조를 사용하여 새 열의 이름을 변경하라는 메시지를 새 열에 보냅니다.
Re: 컬럼 복제안녕하세요 MS, 이 명령이 dt에서 선택한 열을 복제하는 방법을 설명해 주시겠습니까? Eval(dt3:Make << Get script) << set name("Clone"); 나는 이것이 일반적으로 여기에서 묻는 질문의 종류가 아니며 5년 전 일이라는 것을 알고 있지만 이것은 내가 사용한 모든 프로그래밍 언어에서 본 가장 불투명한 명령입니다. 그러나 나는 훌륭하게 작동합니다!Re: 컬럼 복제감사해요 석사 ,
개인 테이블에서 색상이 그다지 유용하지 않은 것은 사실입니다.
문제는 휴리스틱 프로세스를 기반으로 알고리즘을 작성하고 있다는 것입니다. 이것은 내가 데이터 라인을 하나씩 "읽고" 해석해야 한다면 내가 할 일을 할 스크립트가 필요하다는 것을 의미합니다(여기에서 색상이 필요한 곳입니다). 반면에 스크립트는 실행할 때 빨라야 하므로 내가 보는 테이블과 빠르게 실행되는 테이블(비공개) 간에 앞뒤로 바운스해야 합니다. 시각적 테이블과 비공개 테이블 간의 이러한 전환으로 인해 몇 개의 열린 테이블에서 스크립팅하는 동안 견고성 문제가 발생합니다.
론
Re: 컬럼 복제개인 테이블의 값 색상과 같은 열 속성을 유지하는 데 어떤 값이 있는지 잘 모르겠습니다.데이터에만 관심이 있는 경우(일반적으로 개인 테이블의 경우 해당) 아래의 더 간단한 방법을 사용할 수 있습니다.
dt3 << 새 열 ( "클론 만들기" , 공식 ( dt3 : 만들다 ))
Re: 컬럼 복제감사해요 Dave@Pega-Analytics tx넬슨 ,
이것이 내가 찾던 것입니다. 열 복제가 이렇게 번거로울 줄은 몰랐습니다.
다음은 내 최종 스크립트입니다.
여기에 기본 이름 ( 1 ) ;
dt3 = 열려 있는 ( "$SAMPLE_DATA/Cars.jmp" , 사적인 ) ;
// 같은 테이블에 복제
평가 ( 구문 분석 ( "(dt3<<" || 숯 ( dt3 : 만들다 << 스크립트 가져오기 ) || ") << 세트 이름(\!"복제\!");" )) ;
// 열이 복제되었다는 증거 - 로그 확인
dt3 : 클론 << 스크립트 받기 ;
닫다 ( dt3 , 아니 저장 ) ;
최상의,
론
Re: 컬럼 복제다음은 데이터 테이블 포인터를 앞에 추가하는 한 가지 방법의 완전한 예입니다.
Eval(Parse("(dtxxx<<"||char(dt3:Make << Get script)||") << set name(\!"Clone\!");"));
Re: 컬럼 복제평가 전에 스크립트 변수를 편집하여 더 강력하게 만들 수 있습니다. 즉, 표현식 앞에 "dt << "를 추가합니다.
Re: 컬럼 복제복제본이 비공개가 아닌 다른 테이블로 전송되었기 때문에 비공개 테이블을 사용할 때 견고성 문제가 발생했습니다.
Re: 컬럼 복제감사해요 석사 ,
기존 열을 복제하기 위한 jsl 명령이 없다는 것에 놀랐습니다. 또한 dt3이 활성 테이블이 아니면 다른 테이블에 새 열을 만듭니다.
Re: 컬럼 복제그것은 나에게 매우 매끄럽게 보입니다. 견고성에 문제가 있었습니까?
변수에 메모리를 낭비하지 않으려면 int로 단순화할 수 있습니다. oa oneliner:
평가 ( dt3 : 만들다 << 스크립트 가져오기 ) << 이름 설정 ( "복제" ) ;
여러 열을 복제하려면 이들의 하위 집합을 만들고 열 이름을 바꾸고 원래 데이터 테이블로 업데이트하는 것을 고려할 것입니다.