존재하지 않는 열을 포함 할 수있는 목록을 기반으로 열 하위 집합 만들기안녕하세요 사용자 여러분,
이 주제와 관련된 이전 토론을 읽었지만 모든 답을 찾지 못했습니다.
주어진 열 목록을 기반으로 열 하위 집합을 만드는 방법을 알고 싶습니다. 주어진 목록의 열이 하위 집합을 원하는 데이터 테이블에 존재할 때 쉽게 할 수 있다는 것을 알고 있습니다.
내가 알고 싶은 것은 "목록에 주어진 열이 존재하지 않는 경우 '잘못된 인수'에 대한 액세스 또는 평가에서 열을 찾을 수 없습니다."라는 오류가 발생하지 않도록 스크립트를 강력하게 만드는 방법입니다.
예를 들어, 아래 스크립트에서 열, 이름, 나이 및 높이가 존재하기 때문에 "Big Class.jmp"의 하위 집합을 만들 수 있기를 원하지만 스크립트가없는 이유는있는 그대로 분해됩니다. 주어진 목록에 존재하는 열이 없습니다.
코드 주위에 Try ()를 넣어 보았지만 성공하지 못했습니다.
cols_of_interest = {:name, :age, :height, :none};
show(cols_of_interest);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
big_class_cols = dt << Get Column Names();
show(big_class_cols);
subDt1 = dt << Subset(
Columns( cols_of_interest ),
Output Table Name( "Big Class 2" )
);
"
감사,
Simon
데이터 테이블스크립팅Re : 존재하지 않는 열을 포함 할 수있는 목록을 기반으로 열 하위 집합 만들기이를 처리하는 간단한 방법이 있습니다.단순히 cols_of_interest 목록의 각 열이 데이터 테이블에 존재하는지 확인하고 그렇지 않은 경우 cols_of_interest 목록에서 제거합니다.
names default to here(1);
cols_of_interest = {:name, :age, :height, :none};
show(cols_of_interest);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
For(i=nitems(cols_of_interest), i>=1, i--,
if(try(column(dt,char(cols_of_interest[i]))<<GET name=""></GET>Re: 존재하지 않는 열을 포함할 수 있는 목록을 기반으로 열 하위 집합 만들기다음은 <
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
cols_of_interest = {name, age, height, none}; //names without scoping colon
AA1 = Associative Array( dt << Get Column Names() );
AA2 = Associative Array( cols_of_interest );
cols = AA2 << intersect( AA1 ) << get keys;
subDt1 = dt << Subset( Columns( cols ), Output Table Name( "Big Class 2" ) );