나는 시간이 기입 된 재정적 인 항목의 약 30 열을 가진 큰 데이터 세트를 가지고있다. 어떤 열이 첫 번째로 0이 아닌지 (열이없는 데이터는 없지만 양수 값 항목이있는 첫 번째 열을 가져 오려고합니다) 값을 알고 싶습니다. 저는 4 개의 시간 열과 5 번째 열의 작은 구성 예제를 첨부하여 제가 수식을 얻고 싶은 것을 보여줍니다. 0 값이 누락 된 경우 Number (누락 값 수) 함수를 사용하여 원하는 값을 얻을 수 있지만 누락 된 데이터와 0 값이없는 경우 어떤 열이 있는지 식별하는 방법을 자동화하는 방법을 알 수 없습니다 첫 번째는 양수 값입니다. 어떤 아이디어라도 감사 할 것입니다.
@dale_lehman ,
문제에 대한 몇 가지 생각과 해결책을 여기서 찾으십시오.
접근법 1 : 이전 솔루션에서 JSL을 계속 진행하여 테이블에 추가하십시오.
dt = Current Data Table();
Mat = dt << Get As Matrix;
DesList = list();
for(i = 1 , i <= N Rows(Mat), i++,
Pos = Min(Loc(Mat[i,0]));
Insert Into(DesList,Pos);
);
dt << New Column("Test",Numeric,Continuous,<< Set Values(DesList));
// Please note that there will be "." missing value if none of your columns have a positive value
접근법 2 : JSL에서 수식을 스크립트로 작성하여 테이블에 적용하십시오. (약간의 원형 교차로) - 그러나 확장 성이 있어야합니다. 예전의 관련 예제는 나중에 편집 할 것입니다.
for(i = 1, i <= N Items(InvColNames), i++,
If(i == 1,
Stmt = ":" || InvColNames[i] || " >= 1 &" || ":" || InvColNames[i] || " <= InvLimit" ;
,
Stmt = Stmt || " & " || ":" || InvColNames[i] || ">= 1 &" || ":" || InvColNames[i] || " <= InvLimit" ;
) ;
);
Eval( Parse( Eval Insert("\[ dt_Inp << New Column("Status_Inv",Numeric,Continuous,Formula(^Stmt^)); ]\" ) ) );
접근법 3 : 수동으로 이런 일을하십시오. - 이것에 대한 팬이 아니라, 혼자서 대안을 찾지 못하는 것 같습니다. 아마도 다른 사람들은 더 좋은 생각을 가지고있을 것입니다.
If(
:Column 1 > 0, "Column 1",
:Column 2 > 0, "Column 2",
"No Positive"
)
고마워요. -이게 실제로 제가 원하는 것을 계산하지만, 제 도움이 거의 필요하지 않습니다. (거의 존재하지 않는 JSL 능력 때문입니다.) 로그 창에서 정확한 계산을 볼 수 있지만 새 열에 대한 수식 창에 스크립트를 입력하면 빈 값이 표시됩니다. 내가받는 경고는 Show () 함수에 관한 것이다. 결과 계산을 새 수식 열에 표시하려면 어떻게합니까?
@dale_lehman ,
어쩌면 이걸 시도 할까?
dt = Current Data Table();
Mat = dt << Get As Matrix;
DesList = list();
for(i = 1 , i <= N Rows(Mat), i++,
Pos = Min(Loc(Mat[i,0]));
Insert Into(DesList,Pos);
);
Show(DesList);