행 반복하기안녕하세요,
저는 JMP / JSL을 처음 사용하지만 Java에 대한 경험이 있으며 현재 주소 데이터 열을 반복하고 주소가 이미 시스템에 있는지 확인해야하는 프로그램을 작성하고 있습니다. 그럴 경우 새 열에 위도 및 경도 값을 채워야합니다. 나는 연관 배열을 사용하고 있는데 이것은 내가 지금까지 가지고있는 것이다 :
NamesDefaultToHere (1); // 모든 변수 local
rawData = Open ( "Kevin-PriceAnalysis-DO Basis는 April.jmp를 통해 미국");
현재 데이터 테이블 (rawData); // 병원 목록으로 설정된 현재 데이터 테이블
주소 = 열 (rawData, "전체 주소");
dt_latMap = 연관 배열 (주소, rawData : 위도); // 고유 전체 주소를 위도에 매핑합니다.
dt_longMap = 연관 배열 (주소, rawData : 경도); // 고유 전체 주소를 경도로 매핑합니다.
dt_coord = 새 테이블 ( "좌표",
새 열 ( "위도", 숫자, 연속, 형식 ( "위도 DDD", 24, 14)),
새 열 ( "긴", 숫자, 연속, 형식 ( "긴 DDD", 24, 14))
); // 좌표의 새 데이터 테이블 (비어 있음)
(i = 1, i <= N 행 (rawData), i ++) // 원시 데이터를 반복하고, 맵에 contaied가 있는지 검사합니다.
If (Contains (dt_latMap, address [i]), // 예이면 좌표를 업데이트합니다.
dt_coord : Lat = dt_latMap << 값 가져 오기 (주소 [i]);
dt_coord : Long = dt_longMap << 값 얻기 (주소 [i]),
! (dt_latMap, address [i])를 포함하고, 그렇지 않다면 루핑을 유지한다.
잇다();
);
);
행 번호 (-1)가 유효하지 않기 때문에 계속해서 'Lat'에 대한 값을 설정할 수 없습니다. 열 명명에 문제가 될 수 있다고 생각했지만 열의 이름을 변경하려고했습니다. 어떤 도움이라도 대단히 감사하겠습니다! 감사!
다시 : 행 반복정말 고마워!
다시 : 행 반복샌프란시스코 Crime.jmp 테이블을 사용하여 코드를 살펴 보았습니다. 죄송합니다. 전에는 알지 못했지만 dt_coord 테이블에는 행이 없습니다. If ()에서 조건이 충족되면 먼저 행을 추가하십시오. 그런 다음 행 번호를 열 참조의 첨자로 사용하십시오.
Contains( dt_latMap, address[i] ), //if yes updates coordinates
dt_coord << Add Rows( 1 );
r = N Rows( dt_coord );
dt_coord:Lat[r] = dt_latMap << Get Value( address[i] );
dt_coord:Long[r] = dt_longMap << Get Value( address[i] );,
다시 : 행 반복하이 웬디,
모든 열과 변수 이름을 변경하려고 시도했지만 여전히 동일한 문제가 있습니다. 이후 연관 배열을 채우는 코드를 다음과 같이 변경했습니다.
(j = 1, j <= N 행 (rawData), j ++,
if (! contains (dt_latMap, address [j]),
dt_latMap << 삽입 (주소 [j], rawData : 위치 찾기 [j]),
! (dt_LongMap, address [j]),
dt_longMap << 삽입 (주소 [j], rawData : 경도 [j]);
)
);
하지만 여전히 잘못된 행 번호를 받고 있는데, 이번에는 인덱스가 0이라고 말합니다. 현재 행을 어딘가에 놓는 것을 잊고 있습니까? 감사!
다시 : 행 반복여보세요,
같은 열 이름과 JSL 변수 이름이있는 것 같습니다. 자세한 내용은 열 이름 및 변수 이름 충돌 방지 섹션을 참조하십시오.
희망이 도움이됩니다.