'Split On' 고급 옵션 'Split Delimiter'= (Text)...를 사용하여 열을 (JSL로) 다시 코딩하고 싶습니다.
맞습니다. Recode는 JSL 함수가 아니라 열 작업입니다. 대화형 레코딩 편집기를 여는 데이터 열 메시지 << Recode가 있지만 레코딩 규칙을 자동으로 적용할 항목이 없습니다. 반면에 문자열 함수 모음은 풍부하고 많은 도움을 제공합니다.
원래 값과 원하는 기록 결과의 예를 제공할 수 있습니까? 여전히 더 많은 도움이 필요한 경우 더 나은 제안을 할 수 있습니다.
감사합니다 마크
내가 잘 이해하면 JSL에는 recode 기능이 존재하지 않습니다 ...
따라서 열을 다시 코딩할 때 제안된 빨간색 삼각형 옵션(분할 설정, 고급, ...)을 사용하여 수동으로 수행하는 작업을 스크립팅할 수 없습니다.
기본 캐릭터 기능을 사용하겠습니다 ...
JSL의 모든 문자 함수를 고려하여 나만의 수식을 만들고 새 열(재코딩된 값)로 저장하거나 스크립트 없이 행 단위로 값을 계산하는 표현식을 사용해야 한다고 생각합니다.
지금까지 귀하의 설명이 너무 모호하여 다른 사람이 더 구체적인 제안을 할 수 없습니다.
맞습니다. 작동한다는 것을 알 수 있습니다. 이제 해당 수식을 복사하여 이 스크립트의 'recode expression' 위에 붙여넣어 동일한 작업을 수행합니다.
Current Data Table() << New Column( "Recoded",
Formula( recode expression )
);
고맙지만 일치 스크립팅을 사용하지 않는 것이 좋습니다. 이 기록은 전역 스크립트 내에서 구현되고 텍스트 구분 기호는 기록할 열에 따라 사용자가 변경할 수 있기 때문입니다.
그렇기 때문에 가능하면 옵션을 사용하여 레코딩 기능을 작성하는 것을 선호합니다...
내 제안은 다음과 유사합니다. @Mark_Bailey .하지만 열의 수식을 저장하는 대신 수동으로 recode를 생성할 수 있지만 실제로 recode를 완료하기 전에 빨간색 삼각형으로 이동하여
스크립트==>스크립트 창에 저장
그리고 그것은 당신에게 스크립트를 보여줄 것입니다 지정한 레코드를 생성하는 데 필요한 t
Current Data Table() << Begin Data Update;
dc1 = New Column( :weight );
dc1 << Set Name( "weight 2 2" );
Current Data Table() << Go to( dc1 );
Current Data Table() << Move Selected Columns( after( :weight ) );
For Each Row(
dc1[] = Match( :weight,
64, 60,
67, 60,
74, 70,
79, 70,
81, 80,
84, 80,
85, 80,
91, 90,
92, 90,
93, 90,
95, 90,
98, 90,
99, 90,
104, 100,
105, 100,
106, 100,
107, 100,
111, 110,
112, 110,
113, 110,
115, 110,
116, 110,
119, 110,
123, 120,
128, 120,
134, 130,
142, 140,
145, 140,
172, 170,
:weight
)
);
Current Data Table() << End Data Update;
안녕, 마크
예, 하지만 결과는 일치 수식입니다.
가능하면 레코딩 옵션을 사용하여 레코딩 스크립트를 작성하고 싶습니다.
같은 것
dt_:var_name << recode(구분 구분자 텍스트("문자열"))....
그게 가능한지 모르겠습니다.
결과가 원하는 것인지 확인하기 위해 작업을 수동으로 수행했습니까? 그렇다면 수식이 있는 새 데이터 열에 결과를 저장했습니까? 그렇다면 수식을 검사하여 스크립트에서 수행할 수 있는 방법을 확인하십시오.