Re: 여러 열을 다시 코딩하는 jsl 스크립트감사해요!
Re: 여러 열을 다시 코딩하는 jsl 스크립트해결 방법 중 하나는 다시 코딩하려는 열을 기반으로 수식을 사용하여 새 열을 만드는 것입니다.
그런 다음 원래 열을 삭제하십시오
Re: 여러 열을 다시 코딩하는 jsl 스크립트감사합니다!
Re: 여러 열을 다시 코딩하는 jsl 스크립트다음은 JSL로 작성된 Recode 기능을 사용하는 솔루션입니다. 행 단위 처리를 수행하는 것보다 훨씬 빠릅니다.
Names Default To Here( 1 );
dmdt = current data table();
nc = dmdt << get column names( Character );
For( i = 1, i <= N Items( nc ), i++,
col = Column( dt, nc[i] );
colname = col << getname();
Eval(
Parse(
Eval Insert(
"\[
dmdt << Recode Column(
:Name("^colname^"),
{Map Value( _rcOrig,
{ "1", "too low",
"2", "too low",
"3", "right",
"4", "too high",
"5", "too high"},
Unmatched( _rcNow ) )},
Update Properties( 1 ),
Target Column( :Name("^colname^") )
);
]\"
)
)
);
);
Re: 여러 열을 다시 코딩하는 jsl 스크립트대단히 감사합니다. 연관 배열을 사용한 코드가 완벽하게 작동했습니다.
추가하여 다른 옵션도 시도했습니다.
Match(As Column( lstColNames_n3[i])[Row()],
그러나 그것은 작동하지 않았습니다.
그러나 나는 내 문제를 해결했습니다.
감사합니다.
Re: 여러 열을 다시 코딩하는 jsl 스크립트이전 답글을 수정했습니다. 녹음에 도움이 될 것입니다.Re: 여러 열을 다시 코딩하는 jsl 스크립트값을 다시 코딩해야 합니다. 감사해요.
Re: 여러 열을 다시 코딩하는 jsl 스크립트값을 다시 코딩해야 합니까, 아니면 열 속성 값 레이블을 사용할 수 있습니까(이렇게 하면 원래 데이터를 잃지 않습니다). 예: JSL 스크립트로 여러 열을 다시 코딩
편집하다:
그리고 그것들을 제자리에 다시 코딩해야 한다면 여러 가지 방법이 있습니다(저는 연관 배열을 사용합니다).
Names Default To Here(1);
dt3 = current data Table ();
n3 = dt3 << Get Column Names(string);
show(n3);
//create associative array to use matching keys to values
matchAa = Associative Array(
{"1","2","3","4","5"},
{"too low","too low","right","too high","too high"}
);
show(matchAa);
//loop over column names
For(i = 1, i <= N Items(n3), i++,
//refer to column and use set each value to update values
Column(dt3, n3[i]) << Set Each Value(
matchAa[AsColumn(n3[i])[Row()]]
);
);
그리고 귀하의 솔루션에 대해 Match 함수의 값을 참조하는 방법에 문제가 있다고 생각하며 Matching에 대한 단일 값을 얻으려면 [Row()]를 추가해야 합니다.
Match(As Column( lstColNames_n3[i])[Row()],
편집2:
전체 예제 스크립트를 첨부 파일로 추가했습니다.
여러 열을 다시 코딩하는 jsl 스크립트여러분 모두에게,
다음 스크립트를 사용하여 여러 열을 다시 코딩하려고 합니다(예제 데이터 테이블과 함께 첨부 파일에도 있음). 몇 가지 변경을 시도했지만 작동하지 않습니다. 열의 값은 다시 코딩되지 않고 사라집니다.
도움을 주셔서 감사합니다.
감사합니다.
마르첼로.
dt3 = Current Data Table();
n3 = dt3 << Get Column Names();
Show( n3 );
lstColNames_n3 = dt3 << Get Column Names();
Show( lstColNames_n3 );
Show( lstCols_n3 );
lstCols_n3 = {};
For( i = 1, i <= N Items( lstColNames_n3 ), i++,
colName = lstColNames_n3[i];
col = Column( dt3, i );
Insert Into( lstCols_n3, col );
);
Show( lstCols_n3 );
For Each Row(
For( i = 1, i <= N Items( lstColNames_n3 ), i++,
As Column( lstColNames_n3[i] ) = Match( As Column( lstColNames_n3[i] ),
"1", "too low",
"2", "too low",
"3", "right",
"4", "too high",
"5", "too high"
)
)
);
고급 통계 모델링자동화 및 스크립팅데이터 혼합 및 정리실험 설계대량 맞춤화품질 및 프로세스 엔지니어링