참조 할 때 테이블이 비어 있습니다. 안녕 모두!
생성 된 데이터 테이블에서 열을 선택하고 해당 열을 새 데이터 테이블로 변환하려고했습니다. 다음은 내 코드입니다.
//part 1: generate a data table<BR />ret = New Table( title,
Add Rows (rowNum),
New Column( "P", Expression, "Continuous", Formula( pmatrix ) ),
New Column( "X(n)",
Expression,
"None",
Formula( If( Row() == 1, init_state, Lag( :Name( "X(n)" ), 1 ) * :p</img> ) ),
Set Selected,
),
New Column( "steady state",
Expression,
"None",
Formula( :Name( "X(n)" ) - Lag( :Name( "X(n)" ) ) == zeros ),
),
New Column( "States", Character, Values( names ) ),
);
// part 2: select column X(n) and transform it into a new table
<STRONG>mat = Column(ret,"X(n)")[1];
show(mat);</STRONG>
For(i = 2, i <= N Rows(ret), i++,
V Concat To(mat,Column(ret,"X(n)")[i]);
);
table = As Table(mat);
names = Column(ret, "States") << get values;
For(i = 1, i <= N Col(table), i++,
Column(i) << Set Name( names[i] );
);
파트 1에 결과 테이블을 저장 한 다음 파트 2를 실행하여 두 파트를 별도로 테스트했을 때 작동합니다. 하지만 파트 2를 실행하기 전에 매번 파트 1에 테이블을 저장하지 않으려 고합니다. 그러나 병합 된 스크립트가 작동하지 않습니다. 이 경우 파트 2가 반환 한 테이블에는 누락 값 (Empty ()) 만 있습니다.
나는 "쇼 (매트)"를 붙인다. 스크립트에서 무슨 일이 있었는지 확인하고 "mat = Empty ();"라고 표시합니다. 로그에. 매트의 예상 값은 파트 1의 데이터 테이블의 열 X (n)의 각 행과 같은 벡터 여야합니다.
나는 무엇이 잘못되었는지 모른다. 어떤 도움을 주시면 감사하겠습니다!
Re : 참조 할 때 테이블이 비어 있습니다.답장을 보내 주셔서 감사합니다!Re : 참조 할 때 테이블이 비어 있습니다.보고서를 보내 주셔서 감사합니다. column 함수는 JMP에서 내부적으로 << runFormulas를 수행합니다 15.
Re : 참조 할 때 테이블이 비어 있습니다.wait (n)은 최선의 해결책이 아닙니다. n이 충분히 큰지 알기가 어렵습니다. JMP는 백그라운드에서 테이블 수식을 평가합니다. 그들이 평가되었는지 확인하는 가장 좋은 방법은
ret << RunFormulas;
테이블을 만든 후에. 그것은 테이블의 공식을 기다리는 것보다 빨리 평가할 것입니다.
Re : 참조 할 때 테이블이 비어 있습니다.내 문제를 해결할 수있는 해결책을 찾았습니다. 두 부분 사이에 "대기 (1)"를 추가하면됩니다. (참고:
https://community.jmp.com/t5/Discussions/Add-new-column-with-formula-to-data-table-at-certain-position/td-p/14602).
하지만 왜이 작품이 이해가 안 돼요 ... 이 문제를 해결할 수있는 다른 방법이 있습니까?
Re : 참조 할 때 테이블이 비어 있습니다.죄송합니다. 왜 형식이 잘못되었는지 알지 못합니다. 스크립트의 첫 번째 줄은 주석 처리가되어 있습니다 ...
ret = New Table(
Add Rows (rownum),
New Column( "P", Expression, "Continuous", Formula( ptable << get as matrix ) ),
New Column( "X(n)",
Expression,
"None",
Formula( If( Row() == 1, init_state, Lag( :Name( "X(n)" ), 1 ) * :p</img> ) ),
Set Selected,
),
New Column( "steady state",
Expression,
"None",
Formula( :Name( "X(n)" ) - Lag( :Name( "X(n)" ) ) == zeros ),
),
New Column( "States", Character, Values( names ) ),
);
Re : 참조 할 때 테이블이 비어 있습니다.변수 "ret"에 대한 참조가 표시되지 않습니다. 코드의 후반부에서는 ret가 사용되지만, 전반부에서는 사용되지 않습니다 ......