목록에 없는 열 삭제안녕하세요 여러분,
보존하고 싶은 열 집합이 있고, 이 집합을 제외한 모든 열을 삭제하고 싶습니다.
삭제하려는 열의 수가 많습니다.
스크립트를 사용해서 이 작업을 쉽게 할 수 있는 방법이 있나요?
감사해요.Re: 목록에 없는 열 삭제감사합니다! 내 기준에 맞는 열만 추출할 수 있을까요?
키워드가 포함된 열만 하위 집합으로 나누고 싶습니다. 데이터가 많기 때문에 전체 열 이름만은 다루고 싶지 않습니다.Re: 목록에 없는 열 삭제안녕하세요 Dave, 모든 도움에 감사드립니다. 그런데 좋은 블로그네요! 8,000개가 넘는 열로 구성된 매우 큰 데이터 세트가 있는데, 유지해야 할 열과 유지하지 말아야 할 열이 있습니다. 결국 유지하고 싶은 첫 번째 열에 subset을 사용했습니다. 그런 다음 "_M"과 같은 키워드와 일치하는 열을 유지하기 위해 테이블의 나머지 부분에 루프를 실행했습니다. 마지막으로 subset과 기준에 맞는 열 이름을 가진 유지한 테이블을 조인했습니다. 지금은 잘 작동합니다. 그런데 아래 코드에서 list를 다시 사용해 보려고 했지만 실행되지 않는 것 같습니다. 여기서 list를 사용할 수 없는 걸까요? dt = Current Data Table(); // 데이터 테이블 선택 dt << Set Name( "Raw_Data" ); dt << Subset( Columns( 1 :: 30 ), Rows( all ), Output Table( "Subset" ) ); // 주요 열 이름 유지 dt << Revert(); //vt 열 유지 colList = Data Table( "Raw_Data" ) << Get Column Names( String ); For( i = N Cols( dt ), i >= 1, i--, If( !Contains( colList[i], "_M" ), //이름에 "_M"이 포함된 열만 유지 dt << Delete Column( Column( colList[i] ) ) ) );Re: 목록에 없는 열 삭제죄송합니다. 제가 잘못 이해한 것 같습니다. 해당 코드는 테이블이 아닌 목록에서 항목을 제거합니다. 하지만 업데이트된 목록을 Subset 명령과 함께 사용하면 원하는 열만 포함하는 하위 집합 테이블을 생성할 수 있습니다.
자세한 내용은 여기를 참조하세요: http://www.pega-analytics.co.uk/blog/scripting-table-subsets/
Re: 목록에 없는 열 삭제"일을 처리하는 방법은 백만 가지가 있다..." 토킹 헤즈, "What A Day That Was", 1984
삭제할 열의 개수가 매우 많은 경우, 모든 행을 포함하는 테이블의 하위 집합을 만들고 목록에 있는 열만 유지하는 것이 더 효율적일 수 있습니다. 이렇게 하면 반복적인 삭제 작업을 크게 줄일 수 있습니다.
하지만 귀하의 신청은 그렇게 쉽지 않을 수도 있습니다.
제목: 목록에 없는 열 삭제 관련안녕하세요, 데이브. 문의에 대한 빠른 답변 감사드립니다. 제공해주신 샘플 코드를 실행해 봤는데, 목록에 있는 열들이 여전히 테이블에 나타나는 것 같습니다. 제가 뭔가 놓친 부분이 있을까요? dt = Data Table( "temp" ); all = dt << Get Column Names( string ); vt = {"lot_id", "wf_id", "die_x"}; For( i = 1, i <= N Items( vt ), i++, pos = Contains( all, vt[i] ); If( pos > 0, Remove From( all, pos ) ); );Re: 목록에 없는 열 삭제약간 다르지만 같은 아이디어인 다음 코드는 목록에 있는 열을 삭제합니다. 구체적으로는 열 목록( 모두 )이 있고, 목록에 포함된 항목 (excl 제외) 은 삭제됩니다.
all = dt << Get Column Names(string);
// assume excl is a list of column names that i want to remove
For (i=1,i<=NItems(excl),i++,
pos = Contains(all,excl[i]);
If (pos>0,
RemoveFrom(all,pos)
)
);
Re: 목록에 없는 열 삭제안녕하세요. 이 토론을 둘러보고 있었는데, 주제가 매우 도움이 되었는데 해결책이 보이지 않네요. 삭제된 건가요? 다시 올려주시면 감사하겠습니다. 감사합니다!Re: 목록에 없는 열 삭제숫자형 항목(L-값)만 있는 경우에는 이 방법이 효과적일 수 있습니다. 하지만 열 이름에서는 이런 경우가 거의 없습니다. 연관 배열을 영리하게 사용하여 이름과 숫자형을 전환할 수도 있습니다.Re: 목록에 없는 열 삭제고맙습니다. 잘 됐네요. 두 개의 리스트를 사용해서 하나에서 다른 하나를 빼거나 제거할 수 있으면 좋겠네요.Re: 목록에 없는 열 삭제삭제할 열의 목록을 만들려면 모든 열을 반복합니다. 각 열을 보관할 열 목록과 비교합니다.
예