데이터 테이블 열의 이름을 바꾸는 연관 배열안녕하세요 JMP 커뮤니티,
열이 많은 데이터 테이블 (dt1)이 있는데 이름을 바꾸고 싶습니다. 이상한 이름으로 코딩되어 있습니다. 그러나 두 개의 열 : Name 및 : Code 만있는 다른 데이터 테이블 (dt2)이 있습니다. dt2의 각 행에는 코드와 관련된 의미있는 이름이 있습니다.
for 루프를 사용하여이 작업을 수행하는 방법을 알고 있지만 새로운 것을 배우고 연관 배열을 통해 수행하기를 희망합니다. 이 스레드에있는 것과 유사한 것 여기 . 나는 다음과 같이 할 수 있다고 생각했습니다.
Names Default To Here( 1 );
dt = Data Table( "dt1" );
dtnames = Data Table( "dt2" );
aa_name_code = Associative Array(
Column( dtnames, "Name" ) << Get Values,
Column( dtnames, "Code" ) << Get Values
);
aavalues = aa_name_code << Get Values;
aakeys = aa_name_code << Get Keys;
Eval( Eval Expr( Column(dt,Expr( aavalues )))) << Set Name( Expr( aakeys ) ) ) );
그러나 불행히도 이것은 작동하지 않습니다. 내가 어떻게 행동하지 생각 연관 배열이 작동했습니다.
다시 말하지만 저는 새로운 JSL 명령으로 새로운 것을 배우고 더 나아지기를 원합니다. 이것이 제가 Associative Array를 통해 작업하는 이유입니다. 불가능하다면 무차별 대입 For-Loop 방식으로 할 것입니다.
이것에 대한 의견과 의견에 감사드립니다!,
DS
데이터 테이블스크립팅Re : 데이터 테이블 열의 이름을 바꾸는 연관 배열연관 배열과 for 루프를 사용하는 것은 상호 배타적이지 않습니다.나는 많은 사람들이 for 루프를 피하는 것을 좋아한다는 것을 알고 있지만, 하루가 끝나면 테이블의 열을 반복하고 싶고 for 루프는 반복을 수행하도록 설계되었습니다.
namesDefaultToHere(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
arr = [=>];
arr["name"] = "first name";
arr["age"] = "age";
arr["sex"] = "gender";
arr["height"] = "height (inches)";
arr["weight"] = "weight (lbs)";
for (i=1,i<=ncols(dt),i++,
cname = column(i)<<GETNAME></GETNAME>Re : 데이터 테이블 열의 이름을 바꾸는 연관 배열안녕 안녕하세요. ,
의견을 보내 주셔서 감사합니다. 연관 배열을 더 많이 읽어야합니다. For Loops는별로 신경 쓰지 않지만 더 우아한 방식으로 이름 바꾸기를 코딩하고 싶었습니다. 다른 스레드에 대한 링크는 다른 열의 숫자 항목을 기반으로 열 값을 다시 정렬하는 매우 우아한 솔루션이었습니다. 해당 스크립트에서 연관 배열이 작동하는 방식은 테이블 열에서 작동 할 것이라고 생각했지만 분명히 그렇지 않습니다. 과거에 {...} 목록을 사용하여 For 루프로 열 이름을 변경했지만 루프없이 다른 방법을 시도해 보았습니다. 그러나 나는 당신이 제시 한 연관 배열 방법을 좋아하며 목록을 작성하는 대신 그렇게 할 것입니다.
첫 번째 데이터 테이블의 열 이름 목록과 두 번째 데이터 테이블의 연관 배열을 사용하면 연관 배열로 인해 이름을 쉽게 재 할당 할 수 있다고 생각했습니다. 마치 열에 대한 "재 코딩"기능처럼 이름.
어쨌든 열 이름을 바꾸는 데 연관 배열을 사용하는 질문에 대한 답변과 솔루션에 감사드립니다. 데이터로 돌아갈 시간입니다!
감사!,
DS
Re : 데이터 테이블 열의 이름을 바꾸는 연관 배열명확하게하기 위해 작업 예제가 있도록 배열 내용을 하드 코딩했습니다. 별도의 테이블에서 키와 값을 채우는 것이 좋습니다.Evals, Expr 등이 필요하지 않았습니다. 행운을 빕니다.
Re : 데이터 테이블 열의 이름을 바꾸는 연관 배열안녕 안녕하세요. ,
예, 귀하의 예를 따르고 하드 코딩을 이해했습니다. Name 및 Code 열의 다른 테이블로 작업 할 때 연관 배열 (참고 : 올바른 순서이어야 함)을 쉽게 만들 수 있으므로 열 이름을 설정할 때 일치하는 키에 올바른 값이 적용됩니다. 나는 그것을 실행했고 완벽하게 작동했습니다. 다시 한 번 도와 주셔서 감사합니다!
DS