목록에서 For 루프의 데이터 테이블 평가For 루프를 사용하여 데이터 테이블의 이름을 바꾸는 스크립트에서 오류가 계속 발생합니다.
다음은 내 스크립트의 단순화된 버전입니다.
OldNames = {"이전 이름 1", "이전 이름 2", "이전 이름 3"};
NewNames = {"새 이름 1", "새 이름 2", "새 이름 3"};
을위한(
나,
나는 <= N이름,
나는 ++,
dt = 데이터 테이블(OldNames[i]);
dt << 이름 설정(NewNames[i])
);
다음 오류가 계속 발생합니다.
'데이터 테이블', 데이터 테이블/*###*/( OldNames[i] )에 대한 액세스 또는 평가에서 데이터 테이블을 찾을 수 없습니다.
그러나 Data Table(OldNames[1])을 평가할 때 오류가 없습니다!
데이터 테이블Re: 목록에서 For 루프의 데이터 테이블 평가안녕,
그에 따라 For 루프의 처음 두 인수를 변경했습니다.이제 작동해야 합니다.
OldNames = {"Old Name 1", "Old Name 2", "Old Name 3"};
NewNames = {"New Name 1", "New Name 2", "New Name 3"};
For(
i=1,
i <= NItems(NewNames),
i++,
dt = Data Table(OldNames[i]);
dt << Set Name(NewNames[i])
);
Re: 목록에서 For 루프의 데이터 테이블 평가당신은 적어도 i (i = 1)에 대한 정의가 누락 된 것 같습니다. 또한 NNames가 무엇인지 잘 모르겠습니다.
이것은 작동하는 예여야 합니다.
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt = Open("$SAMPLE_DATA/Quality Control/Failures3Delimited.jmp");
dt = Open("$SAMPLE_DATA/Semiconductor Capability.jmp");
OldNames = {"Big Class", "Failures3Delimited", "Semiconductor Capability"};
NewNames = {"New Name 1", "New Name 2", "New Name 3"};
For(i = 1, i <= N Items(OldNames), i++,
dt = Data Table(OldNames[i]);
dt << Set Name(NewNames[i])
);Re: 목록에서 For 루프의 데이터 테이블 평가단순화하는 동안 스크립트의 일부를 놓친 것을 깨달았습니다.
NNames = NItems(NewNames);
For 루프의 첫 번째 인수에 대해 i=1입니다.
내 스크립트에 둘 다 올바르게 정의되어 있어도 여전히 동일한 오류 메시지가 나타납니다.
Re: 목록에서 For 루프의 데이터 테이블 평가@user8421 ,
성공적으로 실행 했습니까? @jthi 의 스크립트?그렇다면 다음과 같이 의심됩니다.
- 하나 이상의 테이블이 닫혀 있습니다.
- 하나 이상의 테이블이 개인용입니다.
- 잘못된 옛 이름.
아래는 약간 수정 @jthi 의 스크립트. 세 번째 테이블을 비공개로 만들고 For 루프에 show 문을 추가합니다.
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt = Open("$SAMPLE_DATA/Quality Control/Failures3Delimited.jmp");
dt = Open("$SAMPLE_DATA/Semiconductor Capability.jmp", "Private");
OldNames = {"Big Class", "Failures3Delimited", "Semiconductor Capability"};
NewNames = {"New Name 1", "New Name 2", "New Name 3"};
For(i = 1, i <= N Items(OldNames), i++,
show(i, OldNames[i], NewNames[i]);
dt = Data Table(OldNames[i]);
dt << Set Name(NewNames[i]);
);
다음은 로그 출력입니다.
/*:
i = 1;
OldNames[i] = "Big Class";
NewNames[i] = "New Name 1";
i = 2;
OldNames[i] = "Failures3Delimited";
NewNames[i] = "New Name 2";
i = 3;
OldNames[i] = "Semiconductor Capability";
NewNames[i] = "New Name 3";
Cannot locate data table in access or evaluation of 'Data Table' , Data Table/*###*/(OldNames[i])
at line 11 in Script.jsl
JMP 스크립팅 가이드에서는 다음과 같은 개인 테이블에 대해 설명합니다.
- N Table()이 열린 데이터 테이블의 수를 반환할 때 개인 테이블은 계산되지 않습니다.
- 현재 데이터 테이블()을 사용하여 개인 테이블을 최신 상태로 만들 수 없습니다.
이것은 개인 테이블에 동일한 기능이 없을 수도 있고 계산되지 않기 때문에 메모리에 이름이 저장되지 않을 수도 있다고 생각하게 했습니다.
행운을 빕니다!
Re: 목록에서 For 루프의 데이터 테이블 평가무리 감사.테이블 이름 중 하나와 개인 테이블 중 하나에 문제가 있었습니다.