열은 목록과 일치하도록 유지하고 나머지는 제거안녕하세요 -
다음을 수행하는 데이터 테이블에서 열(열 이름 기반)을 제거하고 싶습니다. ~ 아니다 목록과 일치합니다. 지금까지 JSL 코드를 따르고 있지만 작동하지 않습니다.
감사합니다.
Names Default To Here( 1 );
bigClass = Open( "$SAMPLE_DATA/Big Class.JMP" );
dt = Current Data Table();
col_of_interest = {"name", "age", "weight"};
col_names = dt << Get Column Names( String );
For(j = 1, j <= N Items( col_of_interest ), j++,
For( i = N Items( col_names ), i > 0, i--,
if ( not( col_names[i] == col_of_interest[j],
Remove From( col_names, i ))
);
);
);
dtNew = dt << subset( all rows, columns( col_names ) ); Wait( 0 );
스크립팅창Re: 열은 목록과 일치하도록 유지하고 나머지는 제거데이터 테이블의 모든 열을 반복하고 필요할 때 제거합니다.
Names Default To Here(1);
bigClass = Open("$SAMPLE_DATA/Big Class.JMP");
dt = Current Data Table();
col_of_interest = {"name", "age", "weight"};
col_names = dt << Get Column Names(String);
For(i = 1, i <= N Items(col_names), i++,
If(!Contains(col_of_interest, col_names[i]),
dt << Delete Columns(col_names[i]);
);
);
Wait(0);또한 JMP에는 행렬 함수 J()가 있으므로 J를 변수 이름으로 사용하지 않는 것이 좋습니다.
편집하다:
또한 테이블을 연 후 이미 참조를 가지고 있기 때문에 Current Data Table()을 사용할 필요가 없습니다. 또한 다음은 열을 제거하는 데 선호하는 방법입니다(연관 배열을 사용하여 추가 열만 가져오고 제거).
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.JMP");
col_of_interest = {"name", "age", "weight"};
//get columns which are "extra"
col_names_aa = Associative Array(dt << Get Column Names(String));
col_names_aa << Remove(Associative Array(col_of_interest));
col_names_to_remove = col_names_aa << get keys;
Show(col_names_to_remove);
dt << Delete Columns(col_names_to_remove);Re: 열은 목록과 일치하도록 유지하고 나머지는 제거두 목록을 비교할 때 루프를 통해 작업하는 동안 결과를 포함할 세 번째 목록을 만든 다음 모든 루프가 완료되면 세 번째 목록을 사용하여 조치를 취하는 것이 더 쉽다는 것을 알았습니다.아래 코드는 시도한 작업을 수행할 수 있습니다.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.JMP" );
col_of_interest = {"name", "age", "weight"};
col_names = dt << Get Column Names( String );
col_list = {};
For( i = N Items( col_names ), i > 0, i--,
if(contains(col_of_interest, col_names[i]),
insert into(col_list, col_names[i])
);
);
dtNew = dt << subset( all rows, columns( col_list ) );
Wait( 0 );
Re: 열은 목록과 일치하도록 유지하고 나머지는 제거매트릭스 함수 J, jthi에 대한 정보와 정보에 감사드립니다. 다시 시도하겠습니다.