JMP 15는 jsl의 l-value가 열 이름이라고 가정합니다. 이것이 의도된 것입니까?JMP 15는 l-value가 열 이름이라고 가정합니다. 이것은 이전 버전의 동작이 아닙니다. 이것은 의도된 것입니까, 아니면 버그입니까?
재현하려면:
dt=new table("test");
dt<<NEW column=""></NEW>JMP 15에서는 오류가 발생하지만 JMP 14에서는 오류가 발생하지 않습니다.
고급 통계 모델링소비자 및 시장 조사Re: JMP 15는 jsl의 l-value가 열 이름이라고 가정합니다. 의도한 것인가요?안녕 txnelson
훌륭한 설명에 감사드립니다. 전역 이름 공간을 참조하는 첫 번째 : in ::에 대해 생각하지 않았습니다. 14.3은 제가 잘못 알고 있었나 봅니다. 지금 시도하면 경고도 표시됩니다.
당신은 " 그리고 기본적으로 대입문과 같이 이름만 제공되는 경우"입니다.
이것도 예상했지만 데이터 테이블의 열 이름이 같은 경우 JMP는 분명히 해당 열에 값을 할당해야 한다고 가정합니다.
이름이 here(1)로 기본 설정되어 있는 것 같습니다. David가 지적한 대로 해당 동작이 수정됩니다. 디버깅이 더 번거롭기 때문에 항상 here 네임스페이스에 기본 이름을 지정하고 기다렸습니다. 하지만 지금부터는 항상 처음부터 이 옵션을 사용할 것입니다!
JMP 팀이 그 행동을 바꾸기를 바랍니다. 찾기 힘든 버그가 생길 수 있기 때문입니다! 특히, 스크립트가 실제로 :'s !
Re: JMP 15는 jsl의 l-value가 열 이름이라고 가정합니다. 의도한 것인가요?@lwx228 부정확하다.이름이 같은 변수와 열이 있을 수 있습니다.실제로 이름의 범위를 올바르게 지정하는 문제일 뿐이므로 JMP는 사용자가 말하는 내용을 알고 있습니다.
다음 스크립트를 사용하십시오.
dt=new table("Example", new column("A") );
dt << add rows(1);
a = 13;
:: a =47;
:a[1] = a;
show(a,::a,:a[1],dt:a[1]);
결과는
a = 47;
a = 47;
:A[1] = 47;
dt:a[1] = 47;
여기서 일어나는 일은 실제로 모든 변수와 열에 콜론 ":"으로 구분된 두 부분으로 된 이름이 있다는 것입니다.
namespace:name
그리고 기본적으로 할당문과 같이 이름만 제공되는 경우
a = 13;
"a"는 변수라고 가정합니다.변수 이름 앞에 콜론이 있으면
:a[1] = a;
열을 참조하는 것으로 가정합니다.위의 예에서 "a"라는 열의 첫 번째 행에는 "a"라는 변수의 현재 값(13)이 지정됩니다.
변수와 열에 대해 전체 2부분 이름을 제공할 수도 있습니다.
변수의 경우 기본 네임스페이스(이름의 첫 번째 부분)는 ":"입니다.그렇습니다. 콜론이므로 변수 "a"의 전체 이름은 다음과 같습니다.
::a
Show() 문에서 전체 이름을 사용한 결과와 그 결과를 볼 수 있습니다.
이 작은 스크립트의 열에 대한 전체 고유 이름은 데이터 테이블에 할당된 포인터 변수와 실제 데이터 테이블 열 이름으로 구성됩니다.
dt:a
Show() 문은 또한 열에 대한 두 부분으로 된 이름 사용법을 보여줍니다.
나는 이것이 모든 사람을 혼란스럽게 하는 것이 아니라 약간의 통찰력을 제공하기를 바랍니다.
Re: JMP 15는 jsl의 l-value가 열 이름이라고 가정합니다. 의도한 것인가요?나는 또한 버전 14.3에서 이것을 잘못 실행했습니다.

이 오류를 피하는 유일한 방법은 변수 이름이 열 이름과 같을 수 없다는 점을 기억하는 것입니다.
Re: JMP 15는 jsl의 l-value가 열 이름이라고 가정합니다. 의도한 것인가요?global:a가 이미 존재하는지 여부에 따라 동작이 달라진다고 생각합니다. 짜증나.
Re: JMP 15는 jsl의 l-value가 열 이름이라고 가정합니다. 의도한 것인가요?당신은 필요
names default to here(1);
그것은 성가신 일입니다. 의도적인지 모르겠습니다. 콜론(즉, :a) 접두사가 있는 경우 변수의 범위가 열 이름으로만 지정되는 경우 선호합니다.
Re: JMP 15는 jsl의 l-value가 열 이름이라고 가정합니다. 의도한 것인가요?흥미로운. 14.3.0에서 실행할 때 오류가 발생하지 않습니다. 이전 버전이 설치되어 있지 않습니다.
Re: JMP 15는 jsl의 l-value가 열 이름이라고 가정합니다. 의도한 것인가요?JMP 14.3 및 JMP 15.1에서 새 세션을 시작하고 스크립트를 실행하면 두 버전에서 동일한 오류가 발생합니다.
Cannot set value for the column 'a' because the row number (0) is not valid.