여러 열을 입력으로 사용하는 사용자 지정 변환 함수를 생성하려면 어떻게 해야 합니까?스크립팅 가이드는 새로운 사용자 정의 변환 함수를 만드는 방법을 설명하는 데 매우 유용하지만 여러 열을 처리하는 방법에 대해서는 명확하지 않습니다.
여러 열을 입력으로 사용하는 사용자 지정 변환 함수를 생성하려면 어떻게 해야 합니까? 예를 들어 X, Y 및 Z 열을 선택하고 이 세 열의 RSS(제곱근 제곱)를 사용하려면?
또한 순서가 중요한 경우 해당 순서는 어떻게 설정됩니까? 열이 선택되는 순서입니까?
Re: 여러 열을 입력으로 사용하는 사용자 지정 변환 함수를 생성하려면 어떻게 해야 합니까?funcDef = Function( { number }, { i, sum },
If( Is List( number ),
Sqrt( Summation( i = 1, N Items( number ), number[i]^2 ) ),
.
);
);
description = "This function returns the root sum squared of a list numbers.";
parmHint = "a list of numbers";
/* create function using variables
the commands can also be accepted as arguments in New Custom Function */
newAdd = New Custom Function( "mySpace", "RSS", funcDef );
newAdd << Description( description );
newAdd << Prototype( "mySpace:RSS( {} )" );
newAdd << Example( "mySpace:RSS( {1,2,3} )" );
// expr() Examples need to be passed inside NameExpr()
newAdd << Parameter( "List", parmHint );
newAdd << Formula Category( "MyNumberStuff" );
// add mySpace:RSS function to system
Add Custom Functions( newAdd );Re: 여러 열을 입력으로 사용하는 사용자 지정 변환 함수를 생성하려면 어떻게 해야 합니까?너무 느려서 죄송합니다. 어떻게 해야할지 모르겠습니다.Re: 여러 열을 입력으로 사용하는 사용자 지정 변환 함수를 생성하려면 어떻게 해야 합니까?자, Here 네임스페이스를 자신의 네임스페이스로 교체합니다.
Re: 여러 열을 입력으로 사용하는 사용자 지정 변환 함수를 생성하려면 어떻게 해야 합니까?해당 기능을 새 JSL 스크립트에 복사/붙여넣고 실행했지만 로그에 "미리 정의된 JMP 네임스페이스를 재정의할 수 없음" 오류가 표시됩니다.Re: 여러 열을 입력으로 사용하는 사용자 지정 변환 함수를 생성하려면 어떻게 해야 합니까?다음은 목록을 가져와 동일한 계산을 반환하는 새로운 함수입니다.
Names Default to Here( 1 );
// example
my numbers = List( 1, 2, 3, 4, 5 );
// define it
funcDef = Function( { number }, { i, sum },
If( Is List( number ),
Sqrt( Summation( i = 1, N Items( number ), number[i]^2 ) ),
.
);
);
// test it
Show( funcDef( my numbers ) );Re: 여러 열을 입력으로 사용하는 사용자 지정 변환 함수를 생성하려면 어떻게 해야 합니까?목록 매개변수를 찾아보겠습니다. thx.
큰따옴표에 대해 말하는 내용이나 사용자 지정 기능 및 변환을 제공하는 JMP에 대한 의견의 근거가 없습니다.Re: 여러 열을 입력으로 사용하는 사용자 지정 변환 함수를 생성하려면 어떻게 해야 합니까?큰따옴표로 묶인 것은 피합니다. 일반적으로 영구적인 가치가 없습니다. JMP는 사용자 정의 기능과 사용자 정의 변환을 제공합니다. 의도한 대로 사용하지 않는 이유는 무엇입니까?
함수가 가변 개수의 인수로 작업해야 하는 경우 항상 스칼라 매개변수 대신 목록 매개변수를 사용할 수 있습니다.
Re: 여러 열을 입력으로 사용하는 사용자 지정 변환 함수를 생성하려면 어떻게 해야 합니까?답변 감사합니다, 마크! 몇 가지 빠른 후속 질문:
1. JMP가 다중 열 변환 기능을 *지원*한다는 것을 알고 있습니다. 단지 다중 열 *custom* 변환을 아직 지원하지 않는 것뿐입니까?
2. 함수는 3개의 인수를 취합니다. 임의의 수의 인수를 취하는 함수를 정의할 수 있습니까?Re: 여러 열을 입력으로 사용하는 사용자 지정 변환 함수를 생성하려면 어떻게 해야 합니까?Custom Function이 귀하의 경우에 더 나은 선택이라고 생각합니다. 사용자 정의 변환은 단일 입력으로 제한됩니다. 사용자 정의 기능은 이러한 방식으로 제한되지 않습니다.
funcDef = Function( {x, y, z}, Sqrt( Sum( x^2, y^2, z^2 ) ) );
description = "This function returns the root sum squared of three numbers.";
// examples can be multiple statements inside expr()
ex2 = Expr(
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
Here:RSS( :age[1], :age[2], :age[3] );
);
parmHint1 = "x value";
parmHint2 = "y value";
parmHint3 = "z value";
/* create function using variables
the commands can also be accepted as arguments in New Custom Function */
newAdd = New Custom Function( "Here", "RSS", funcDef );
newAdd << Description( description );
newAdd << Prototype( "Here:RSS(x,y,z)" );
newAdd << Example( "Here:RSS(1,2,3)" );
// expr() Examples need to be passed inside NameExpr()
newAdd << Example( Name Expr( ex2 ) );
newAdd << Parameter( "Number", parmHint1 );
newAdd << Parameter( "Number", parmHint2 );
newAdd << Parameter( "Number", parmHint3 );
newAdd << Formula Category( "NumberStuff" );
// add myNamespace:Add Ten function to system
Add Custom Functions( newAdd );
함수 내부의 표현식에는 적절한 순서에 대한 요구 사항을 해결하기 위한 논리가 포함될 수 있습니다.