JSL을 사용하여 누락된 값이 있는 셀의 값을 0으로 변경하려면 어떻게 해야 합니까?테이블을 분할할 때 누락된 값이 있는 여러 열의 셀이 생깁니다.이 값을 0으로 변경하고 싶습니다.행 및 분할 열의 수는 SQL 쿼리를 통해 가져오는 데이터에 따라 달라집니다.선택한 열을 반복하고 누락된 값을 0으로 변경하려면 어떻게 해야 합니까?
감사
Re: JSL을 사용하여 누락된 값이 있는 셀의 값을 0으로 변경하려면 어떻게 해야 합니까?이 경우에는 필요하지 않지만 매우 유용한 패턴이라는 데 동의했습니다.임의로 복잡한 JSL 조각을 가져옵니다.특히 구성 요소를 매개변수화하기 어려운 경우입니다.변수를 캐럿(^var^)으로 묶고 " Eval-Parse-Eval Insert" 패턴.문제 해결됨.
Re: JSL을 사용하여 누락된 값이 있는 셀의 값을 0으로 변경하려면 어떻게 해야 합니까?고마워, 토마스.훌륭하게 작동합니다!!
Re: JSL을 사용하여 누락된 값이 있는 셀의 값을 0으로 변경하려면 어떻게 해야 합니까?손으로 세 단계로 할 수 있습니다.
열 선택
속성 표준화를 선택한 다음 다시 코딩하십시오.
모든 .을 0으로 다시 코딩하십시오.
jsl로 하고 싶다면 다음과 같이 할 수 있습니다.
dt=current data table();
colnames = dt << get column names( numeric,string );
For( i = 1, i <= N Items( colnames ), i++,
column(dt,colnames[i])[dt<<GET rows="" where=""></GET>
친절한 안부, 토마스
Re: JSL을 사용하여 누락된 값이 있는 셀의 값을 0으로 변경하려면 어떻게 해야 합니까?다음은 같은 생각입니다. @cwillden 하지만 Eval(Parse())를 사용할 필요 없이
Names Default To Here( 1 );
dt = Current Data Table();
numericColumnNames = dt << get column names( numeric, string );
For( i = 1, i <= N Items( numericColumnNames ), i++,
Try(
Column( dt, numericColumnNames[i] )[dt << get rows where(
Is Missing( (As Column( dt, numericColumnNames[i] )) )
)] = 0
)
);
Re: JSL을 사용하여 누락된 값이 있는 셀의 값을 0으로 변경하려면 어떻게 해야 합니까?다음과 같이 시도해 보십시오.
dt = Current Data Table();
cols = dt << Get Selected Columns();
For( i = 1, i <= N Items( cols ), i++,
Eval( Parse( Eval Insert( "^cols[i]^[dt << Get Rows Where(Is Missing(^cols[i]^))] = 0" ) ) )
);
Is Missing 함수가 Is Missing(cols[i]) 또는 Is Missing(Column(cols[i]))과 같은 것을 좋아하지 않았기 때문에 결국 Eval-Parse-Eval Insert를 사용하게 되었습니다.Eval-Parse-Eval Insert를 사용하는 것은 항상 해킹처럼 느껴지지만 필요한 것을 얻을 수 있습니다.