선택한 열 제외안녕하십니까,
소스에서 다양한 열 목록을 가져오고 내 데이터 테이블에서 이러한 열을 선택합니다. 데이터 테이블에는 다른 많은 열이 있지만 스크립트가 실행되고 일부 분석을 수행하는 동안 제공된 목록에 없는 열을 숨기거나 제외하고 싶습니다...
아래 줄로 필요하지 않은 모든 열을 선택할 수 있습니다.
dt < <열 선택 반전(Provided_List)
다음 단계: 선택한 열을 제외합니다. 어떻게 해야 하나요?
스크립팅 북에서 볼 수 있습니다. 열("X") << 제외(1) 이름이 X인 열을 제외하지만 이미 선택한 열을 제외하는 방법이 있습니까?
감사.
Re: 선택한 열 제외감사!!! 나도 알아봤는데 좀 길었다. 이것은 완벽 해요 
Re: 선택한 열 제외이 작업을 수행하는 방법의 구문은 다음과 같습니다.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/big class.jmp" );
Column( dt, 4 ) << set selected( 1 );
Column( dt, 5 ) << set selected( 1 );
selcols = dt << get selected columns;
For( i = 1, i <= N Items( selcols ), i++,
Column( dt, selcols[i] ) << exclude( 1 )
);
Re: 선택한 열 제외이 스레드를 부활시켜서 죄송합니다. 하지만 동일한 질문이 있으며 이와 같은 접근 방식이 효과가 있고 개선할 수 있는 방향을 원했습니다.
//List of wanted columns<BR />col_names = (":Col A", ":Col B", etc);
<BR />//Iterates through list and uses the string names to identify and select
for( i = 1, i <= N Items(dt), i++,
Column( dt, col_names[i] ) << set selected
);
dt << Invert Column Selection</CODE></P></LINGO-BODY><LINGO-SUB id="lingo-sub-521501" slang="en-US" mode="NONE">Re: 선택한 열 제외</LINGO-SUB><LINGO-BODY id="lingo-body-521501" slang="en-US" mode="NONE"><P>for 루프에서 N Items(dt) 대신 N Items(col_names)를 사용해야 합니다.</P>
<PRE><CODE class=" language-jsl">Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
col_names = {"age", "sex", "weight"};
for( i = 1, i <= N Items(col_names), i++,
Column( dt, col_names[i] ) << set selected;
);
dt << Invert Column Selection;
또한 Select Columns를 사용하여 코드를 더 간단하게 만들 수 있습니다.
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
col_names = {"age", "sex", "weight"};
wait(1); // for demo purposes
dt << Select Columns(col_names);
wait(1); // for demo purposes
dt << Invert Column Selection;
올바른 열을 직접 선택하여 반전을 피할 수도 있지만 이해하기가 더 어려울 수 있습니다.
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
col_names = Associative Array({"age", "sex", "weight"});
all_col_names = Associative Array(dt << Get Column Names("String"));
all_col_names << Remove(col_names);
dt << Select Columns(all_col_names << get keys);Re: 선택한 열 제외답변 감사합니다, jthi!그것은 빨랐다!
방금 답장을 봤습니다. 나는 다른 것을 시도했고 매우 간단한 2줄 솔루션을 생각해 냈습니다.
cols = {"Col A", "Col B"};
dt << Select Columns(cols) << Invert Column Selection;연관 배열이 사용되는 것을 본 적이 없으며 현재 col에 대해 가지고 있는 것 대신에 하나를 사용하려고 했을 때 Select Columns는 cols에 없지만 반전된 선택 중 1개에 불과한 열을 선택했습니다. 이상한.왜 그럴 수 있는지 아십니까?
cols = Associative Array({"Col A", "Col B"});
dt << Select Columns(cols) << Invert Column Selection;Re: 선택한 열 제외이는 연관 배열이 키 값 쌍을 저장하고 연관 배열과 함께 열 선택을 직접 사용할 때 실제로 무엇을 해야할지 모를 가능성이 높기 때문입니다. 일반적으로 아무 것도 선택하지 않고 반전하면 모든 열이 선택됩니다(연관 배열이 1로 평가되어 첫 번째 열을 선택하는 경우가 있을 수 있음).
연관 배열에서 키를 가져오려면 << get keys를 사용할 수 있습니다.
Names Default To Here(1);
cols_list = {"Col A", "Col B"};
cols_aa = Associative Array({"Col A", "Col B"});
Show(cols_list);
Show(cols_aa);
Show(cols_aa << get keys);
JMP 도움말 페이지에서 연관 배열에 대한 자세한 내용을 읽을 수 있습니다. 스크립팅 안내서 > 데이터 구조 > 연관 배열 . 이 경우 세트 작업으로 인해 사용했을 수 있습니다.