변환 열을 참조하는 방법은 무엇입니까?전송하여 변환 열을 생성할 때 열 변환 에 데이터 테이블 , 반환 값으로 열에 대한 참조를 얻습니다.
전송하여 변환 열을 생성할 때 열 변환 GraphBuilder 개체에 대한 반환 값으로 Graph Builder에 대한 참조를 얻습니다. 열에 대한 참조는 없습니다.
따라서 이 "열" col2에 이름을 묻는 것은 작동하지 않습니다.
변환 열 참조에 대한 자세한 내용은 어디에서 찾을 수 있나요?
예를 들어 열에 대한 확실한 참조를 얻는 방법(예::col2).
기호로 열을 참조할 필요가 없다는 것이 얼마나 좋은가요? 열 이름을 사용해도 괜찮은 것 같습니다. 따옴표(!?) 없이도 괜찮습니다.
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
gb = dt << Graph Builder();
col1 = dt << Transform Column ("col1Name", Formula(1/:height));
col2 = gb << Transform Column ("col2Name", Formula(1/:height));
Show(Name Expr(col1));
Show(Name Expr(col2));
gb << Variables(X(:height), Y (col1));
// doesnt work :(
gb << Variables(X(:height), Y (col2));
gb << Variables(X(:height), Y ("col2Name")); //works
gb << Variables(X(:height), Y (col2Name)); // works (!?)
Show(col1 << get name());
Show(col2 << get name());
Show(Column(dt, "col1Name"));
Try(Show(Column(dt, "col2Name")), "dt doesn't know the column");
자동화 및 스크립팅Re: 변환 열을 참조하는 방법은 무엇입니까?Jmp 지원: TS-00056243
. 플랫폼 컨텍스트에서 생성된 변환 열을 참조할 수 없습니다.즉, 제거하거나 교체할 수 없습니다.변환 열에 대한 참조를 갖고 싶다면 데이터 테이블 컨텍스트에서 열을 생성해야 합니다.
따라서 플랫폼에서 변환 열을 변경하거나 이름을 바꾸려면 JSL이 아닌 GUI를 통해 수행해야 합니다.
(# JSL을 통해 불가능한 것은 무엇입니까?)
추가된 소원:
변환 열 개선
Re: 변환 열을 참조하는 방법은 무엇입니까?그동안 ...
유일한 해결책은 변환 열을 생성하는 것 같습니다 테이블 범위 포함 업데이트될 때마다 이를 Plot에 다시 넣습니다.
아이디어를 설명하기 위해 선택한 M & F를 계산하는 GraphBuilder 플롯을 생성했습니다.
이 접근 방식이 얼마나 강력할 수 있는지 상상해 보십시오.
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
colName = "count_"||Char(Random Integer(100000));
Eval(Eval Expr(gb = dt << Graph Builder(
Transform Column(
Expr(colName),
"Table Scope", // essential because otherwise the replace(1) won't work
Formula( Col Number( 1,:sex ) )
),
Variables( X( :sex ), Y( Expr(colName) ) ),
Elements( Bar( X, Y ) ),
Local Data Filter(Add Filter(columns( :sex, :name )))
)));
ldf = (Current Report()["Local Data Filter"] << get scriptable object);
myRowsOld=[];
fch = Function( {x},
myRows = ldf << Get Filtered Rows;
If( not(nrows(myRows)==nrows(myRowsOld))| not(asList(myRows) == asList(myRowsOld)),
myRowsOld = myRows;
Eval(
Substitute(
Expr(
dt << Transform Column(
_colName_,
//"Table Scope", // gb doesn't understand replace(1) -> we have to talk to the table -> no Table Scope needed
Formula(
Col Number( 1, :sex, Contains( _myRows_, Row() ) > 0 )
),
Replace( 1 )
)
),
Expr( _myRows_ ), myRows, Expr(_colName_), colName
)
);
gb << add variable({ Column(colName), Role("Y") }); //replacing the transform column removes it automatically from the graph
dt << Show Transforms();
);
);
current report() << on close(dt << delete column(colname));
rs = ldf << Make Filter Change Handler( fch );
dt << Show Transforms();
Re: 변환 열을 참조하는 방법은 무엇입니까?수식 열 생성과 비교하여 이 접근 방식의 이점은 다음과 같습니다.
- 변환 열은 일시적이므로 저장되지 않습니다.
유사한:
- 테이블 범위를 사용하여 변환 열을 생성해야 하며 다른 플랫폼에서도 볼 수 있습니다.
더 나쁜:
- 실제 수식 열을 사용한 접근 방식에 비해 코드가 상당히 길어졌습니다. Re: 변환 열: 제외된 행이 있는 버그
실제 수식 열의 경우 입력 목록을 업데이트하면 충분하며 그런 다음 수식이 다시 평가됩니다.
변환 열을 사용하면 열을 삭제하고 다시 생성하는 것과 같습니다.
왜?
변환 열의 경우 다음을 사용할 수 있습니다.
<< reset transform()
값을 새로 고치려면
그러나 놀랍게도 보고서는 업데이트를 인식하지 못하고 변수를 제거하고 추가한 후에도 이전 값을 표시합니다.

Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
// transform column with table scope
global:a = 2;
dt << Transform Column(
"sqrt[height]",
Formula( global:a * Sqrt( :height ) ),
Replace(1);
);
Show( :"sqrt[height]"n[1] );
gb = Graph Builder(
Variables( X( :height ), Y( :"sqrt[height]"n ) )
);
global:a = 30;
// clear the cache
:"sqrt[height]"n << Reset Transform();
// new values
Show( :"sqrt[height]"n[1] );
wait(2);
// try to update the GraphBuilder
gb << remove variable(2);
wait(2);
// unfortunately, still the old values !?!?!
gb << add variable({:"sqrt[height]"n, Role("Y")});
// a new GraphBuilder starts with updated values !
gbnew = Graph Builder(
Variables( X( :height ), Y( :"sqrt[height]"n ) )
);
새로 생성된 그래프 빌더 보고서( gbnew )은 새로운 값을 보여줍니다.
-> 첫 번째 그래프 빌더는 변환 열이 새로 고쳐질 때 새로 고쳐지지 않는 일부 저장된 값을 사용하는 것 같습니다.
Re: 변환 열을 참조하는 방법은 무엇입니까?이것이 해결책으로 간주됩니까?
흠 ...
Jmp 지원 [TS-00056243]은 매우 명확합니다.
짧은 대답은 로컬 데이터 필터를 변경하여 변환 열을 변경하는 방법이 없다는 것입니다.
[우리 중 한 명]은 이 문제에 대한 기술 지원 및 개발을 위해 다른 사람들과 협력해 왔지만 사용할 수 있는 해결책이 없습니다.
Re: 변환 열을 참조하는 방법?로컬 데이터 필터가 변경되어 변환 열이 변경되는 방식이 아닙니다.
아직 아님 ...