行を繰り返すやあ、
私はJMP/JSLを初めて使用しますが、Javaの経験があり、現在、住所データの列を反復処理して、住所がすでにシステムに存在するかどうかを確認する必要のあるプログラムを作成しています。そうである場合は、新しい列に緯度と経度の値を入力する必要があります。 私は連想配列を使用しています、そしてこれは私がこれまでに持っているものです:
NamesDefaultToHere(1); //すべての変数はローカル
rawData = Open( "Kevin-PriceAnalysis-DO Basis US through April.jmp");
現在のデータテーブル(rawData); //病院のリストに設定された現在のデータテーブル
アドレス=Column(rawData、 "フルアドレス");
dt_latMap =連想配列(アドレス、rawData:Latitude); //一意の完全な住所を緯度にマッピングします
dt_longMap =連想配列(アドレス、rawData:Longitude); //一意の完全なアドレスを経度にマッピングします
dt_coord = new Table( "Coordinates"、
New Column( "Lat"、Numeric、Continuous、Format( "Lat DDD"、24、14))、
New Column( "Long"、Numeric、Continuous、Format( "Long DDD"、24、14))
); //座標の新しいデータテーブル(空)
For(i = 1、i <= N Rows(rawData)、i ++、//生データを反復処理し、マップに含まれているかどうかを確認します
If(Contains(dt_latMap、address [i])、//yesの場合は座標を更新します
dt_coord:Lat = dt_latMap << Get Value(address [i]);
dt_coord:Long = dt_longMap << Get Value(address [i])、
!Contains(dt_latMap、address [i])、//そうでない場合は、ループを続けます
継続する();
);
);
行番号(-1)が無効なため、「'Lat'の値を設定できません」を取得し続けます。 列の名前付けに問題があるのではないかと思いましたが、列の名前を変更してみました。 どんな助けでも大歓迎です! ありがとう!
Re:行を繰り返す本当にありがとう!
Re:行を繰り返すSanFranciscoCrime.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] );,
Re:行を繰り返すこんにちはウェンディ、
すべての列名と変数名を変更しようとしましたが、それでも同じ問題が発生します。 それ以来、連想配列を次のように設定するコードを変更しました。
For(j = 1、j <= N Rows(rawData)、j ++、
If(!Contains(dt_latMap、address [j])、
dt_latMap << Insert(address [j]、rawData:Latitude [j])、
!Contains(dt_LongMap、address [j])、
dt_longMap << Insert(address [j]、rawData:Longitude [j]);
)。
);
しかし、私はまだ無効な行番号を取得しています。今回はインデックスが0であると言っています。 現在の行をどこかに設定するのを忘れていますか? ありがとう!
Re:行を繰り返すこんにちは、
同じ列名とJSL変数名があるようです。 を参照してください列名と変数名の競合の防止オンラインドキュメントのセクション。
これがお役に立てば幸いです。