간단한 작업 - 빈 열 제거<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />안녕하세요, SAS 포럼입니다.
데이터세트에서 비어 있는 모든 열을 제거하려고 하는데 JMP9에서 이 작업을 수행하는 방법을 알 수 없습니다. 도울 수 있니? 환자 수와 AA의 수는 다양합니다.
데이터 투입
| 인내심 있는 | 견본
| AA_1 | AA_2 | AA_3 | AA_4 | AA_5 | AA_6 |
|---|
| 2234 | 1일차 | | ㅏ | | | | 씨 |
| 2234 | 11일차 | | ㅏ | | V/M/S | | 씨 |
| 2234 | 21일차 | | ㅏ | | | | 씨 |
| 2234 | 24일차 | | ㅏ | | | 성 | 씨 |
산출
| 인내심 있는 | 견본
| AA_2 | AA_4 | AA_5 | AA_6 |
|---|
| 2234 | 1일차 | ㅏ | | | 씨 |
| 2234 | 11일차 | ㅏ | V/M/S | | 씨 |
| 2234 | 21일차 | ㅏ | | | 씨 |
| 2234 | 24일차 | ㅏ | | 성 | 씨 |
Re: 간단한 작업 - 빈 열 제거목록을 보려면 다음을 사용하면 됩니다.
인쇄( lst삭제);
Re: 간단한 작업 - 빈 열 제거감사합니다. 이것을 실행했지만 목록을 볼 수 없었습니다. 뭔가 빠졌나요?
Re: 간단한 작업 - 빈 열 제거안녕하세요,
빈 열 이름을 목록에 유지하려면 다음과 같이 처리할 수도 있습니다.
dt = 현재 데이터 테이블();
iColMax = NCol(dt);
iRowMax = Nrow(dt);
널 = 0;
lstDelete = 목록();
(iCol = 1, iCol<=iColMax, iCol++,
널 = 0;
col = 컬럼(iCol);
strColName = 열(iCol) << GetName;
(iRow = 1, iRow<=iRowMax, iRow++,
If (Or(IsEmpty(col[iRow]),IsMissing(col[iRow])),
널 = 널 + 1;
);
);
If (null == iRowMax, InsertInto(lstDelete, Eval(strColName)))
);
);
dt << 열 삭제(lstDelete);
Re: 간단한 작업 - 빈 열 제거아름답게 작동합니다! 매우 감사합니다.
Re: 간단한 작업 - 빈 열 제거JMP에서 이 작업을 대화형으로 수행할 때 누락된 데이터 패턴과 요약을 사용하는 경향이 있습니다. 그러나 큰 테이블과 반복되는 작업의 경우 JSL 스크립트가 더 효과적입니다.
이는 모든 데이터 유형의 빈 열을 제거하는 데 효과적입니다.
dt = 현재 데이터 테이블 () ;
체크 안함 = N 열 ( dt ) ;
이름 = dt << 열 이름 가져오기 () ;
dt1 = dt << 누락된 데이터 패턴 ( 기둥 ( 평가 ( 이름 ) ) , 보이지 않는 ) ;
nr = N 행 ( dt1 ) ;
을 위한 ( 나 = 체크 안함 , 나 >= 1 , 나 --,
만약에 ( 콜섬 ( 열 ( dt1 , 나 + 삼 ) ) < nr ,
다음에서 제거 ( 이름 , 나 )
)
) ;
노력하다 ( dt << 열 삭제 ( 이름 ) ) ;
닫다 ( dt1 , 노세이브 ) ;