모든 열에서 가장 높은 세 개의 셀 값을 선택하는 방법은 무엇입니까?"예측"이라는 단어가 포함된 모든 열에 대해 목록에서 5보다 크거나 4.5보다 큰 상위 3개 셀 값을 추출하려고 합니다(5보다 큰 숫자가 3개 있으면 4.5보다 큰 숫자는 원하지 않음). 또한 5에서 가장 멀리 떨어진 것을 선택하고 원시 테이블에서 해당 셀 값을 숨깁니다. 예를 들어, 아래 주어진 이 예제 테이블에서:
예측 B 열에 6.6, 5.3 및 5를 저장하고 싶습니다. 그리고 열 B, 즉 셀 값 65에서 예측 B 너트에 인접한 셀을 숨깁니다.
내 코드는 "예측"이라는 문자열이 있는 열을 선택합니다.
dt = Current Data Table();
a = "Prediction";
col = dt << get column names( string );
nc = N Items( col );
For( i = 1, i <= nc, i++,
If( Contains( col[i], a ), )
);
5 또는 4.5보다 큰 상위 3개 셀을 어떻게 선택할 수 있습니까? 신속하게 처리해 주신 JMP 커뮤니티에 감사드립니다.
Re: 모든 열의 상위 3개 셀 값@txnelson 정규식을 사용하여 그렇게 할 수 있습니다: match = regex(colstrings, "[{,]\s*([^{,}]*Prediction[^{,}]*)[,}]", "\1");
Re: 모든 열의 상위 3개 셀 값특정 문자열을 지정하려면 Contains() 함수 대신 Loc() 함수를 사용하십시오.
Re: 모든 열의 상위 3개 셀 값또한 B 및 예측 B와 같은 열을 일치시킬 수 있는 방법이 있습니까? 감사해요
Re: 모든 열의 상위 3개 셀 값알겠습니다. 도와주셔서 감사합니다.@txnelson @uday_guntupalli
Re: 모든 열의 상위 3개 셀 값누락으로 설정된 셀 값을 폐기하는 직접적인 방법은 없습니다.그 이유는 @dale_lehman 새 열 사용 제안 및 @uday_guntupalli 데이터의 새 하위 집합을 만든 다음 하위 집합을 수정할 것을 제안합니다.
Re: 모든 열의 상위 3개 셀 값@에이미 ,
개별 셀을 포함하려고 하지 않고 항상 테이블의 하위 집합을 만들 수 있습니다.
Re: 모든 열의 상위 3개 셀 값@에이미 ,
dt = Current Data Table();
SearchTerm = "Prediction";
ColNames = dt << Get Column Names("String");
DesRowsList = {};
for(i = 1, i <= N Cols(dt), i++,
If(Contains(ColNames[i],SearchTerm),
SR = dt << Select Where(As Column(dt,ColNames[i]) > 4.5) << Get Selected Rows;
Insert Into(DesRowsList,SR);
dt << Clear Select;
);
);이렇게 하면 조건을 충족하는 행을 하나의 목록으로 가져오는 데 도움이 됩니다. 거기에서 각 경우에 상위 3개를 추출할 수 있어야 합니다. 귀하의 질문에 대답하기 위해 셀만 제외하는 것을 알지 못합니다.
Re: 모든 열의 상위 3개 셀 값@txnelson 음, 셀의 값을 누락된 값으로 설정/숨기기/셀의 값을 제외시킨 후 데이터 테이블에서 일부 모델을 실행한 다음 그대로 유지하거나 값을 셀에 다시 포함할지 결정하려고 합니다. 이것이 가능한가?
Re: 모든 열의 상위 3개 셀 값JMP에서는 개별 셀을 "제외"하는 것이 아니라 셀의 값을 "누락된 값"으로 설정합니다.누락된 값의 기호는 "."입니다.
열이 문자 데이터 유형인 경우 값을 ""로 설정합니다.
Re: 모든 열의 상위 3개 셀 값전체 행을 제외하고 싶지도 않습니다. 셀만 제외하고 싶습니다. 예를 들어 내가 게시한 테이블에서 "예측 B" 열의 값이 6.6인 셀에 인접한 "B" 열의 셀을 제외할 수 있기를 원합니다. 정규식을 사용하여 이러한 문자열을 일치시키는 방법을 파악하는 데 여전히 어려움을 겪고 있습니다. 저는 2개의 목록을 만들었습니다. 하나는 "예측"이라는 단어가 포함된 열 이름을 포함하고 다른 하나는 그렇지 않습니다. 이러한 유형의 테이블에서 가장 잘 작동한다고 생각되는 기능을 지적해 주시면 감사하겠습니다. 저는 JSL과 함께 일하기 시작했고 여전히 어려움을 겪고 있습니다. 도움을 주셔서 미리 감사드립니다.@uday_guntupalli
추신: JSL의 열에서 단일 셀을 제외할 수 있는 방법이 없다는 뜻인가요?
Re: 모든 열의 상위 3개 셀 값@에이미 ,
전체 행을 제외하시겠습니까, 아니면 해당 열의 행만 제외하시겠습니까? 내가 묻는 이유는 다음을 사용하여 전체 행을 제외할 수 있다고 확신합니다.
dt << Exclude ;
그러나 열에서 행을 제외하려는 경우에는 가능하지 않다고 생각합니다. 그렇다면 행 번호를 변수에 저장한 다음 해당 행을 제외하는 것이 어떻습니까?
Re: 모든 열의 상위 3개 셀 값이것은 내 분석에서 제거해야 하는 데이터를 확인하는 방법이므로 동일한 방식으로 수행해야 합니다. 도움을 주셔서 정말 감사합니다. 정말 감사합니다. @dale_lehman
Re: 모든 열의 상위 3개 셀 값나는 스크립팅을 많이 하지 않기 때문에 다른 사람이 당신을 도울 수 있도록 남겨두겠습니다.이러한 작업을 수행한 후 행을 제외하려는 이유를 실제로 이해하지 못한다고만 말할 것입니다. 제외되거나 누락된 행으로 새 열을 만드는 것이 더 좋을 것 같습니다.나는 그 스크립트가 상대적으로 간단할 것이라고 생각하고 원본 데이터를 덮어쓰는 아이디어가 마음에 들지 않습니다(그것이 당신이 제안하는 것이라면).
Re: 모든 열의 상위 3개 셀 값@dale_lehman 도와 주셔서 감사합니다. 모든 열의 최대값을 선택하도록 스크립트를 업데이트하고 "val" 변수에 저장했습니다. 첫 번째 열에서 최대 개수의 셀을 제외하고 몇 가지 작업을 수행한 다음 두 번째 열에서 최대 개수의 셀을 제외하는 방법 등을 알고 있습니까?
dt = Current Data Table();
col = dt << get column names( string );
nc = N Items( col );
For( i = 1, i <= nc, i++,
Col1 = Column( dt, i );
If( Contains( col[i], "Prediction" ),
Show( col[i] );
val = Abs( Col Max( Col1 ) );
Show( val );
MaxRow = dt << get rows where( As Column( Col1 ) == Abs( Col Max( Col1 ) ) );
);
);
Re: 모든 열의 상위 3개 셀 값귀하가 지정한 대로 B열 예측을 사용하려는 시도와 함께 귀하의 예를 첨부했습니다.이것이 정확히 원하는 것을 수행하는지 확실하지 않지만 거의 비슷하다고 생각합니다.
Re: 모든 열의 상위 3개 셀 값@dale_lehman 글쎄, 열 순위 기능을 사용하는 방법에 대해 많이 찾을 수 없었습니다. 하나의 최대값을 추출할 수 있지만 여전히 상위 3개로 진행할 수 있는 방법을 알 수 없습니다.
Re: 모든 열의 상위 3개 셀 값열 순위 함수(및 일부 IF 문)가 트릭을 수행할 수 있습니다.