[行を取得]コマンドは特定の列に対してのみ機能します。こんにちは、
私は「get rows where」コマンドを使用して、しきい値に達したかどうかに応じて数値を「P」または「N」に置き換えます。
これがコードです:
dt = Open( "C:\ test_data.jmp");
しきい値= 12。//ユーザーがこのしきい値を設定します
(dt:HOOK [dt <<行を取得する(::Hook> = thresh)] = "P");を試してください。
(dt:HOOK [dt <<行を取得する(::Hook == "")] = "N");を試してください。
したがって、これはうまく機能し、列にNとPを入力します。これら2つのtry行をコピーして貼り付けて列の指定を変更しても、他の列では機能しません。コマンドの順序を変更したり、列の順序を変更しても、それでもフック列のみが変更されます。
何が足りないの?
ありがとうございます。
K
Re:Get Rows Whereコマンドは特定の列に対してのみ機能します列は数値なので、比較は
Try( dt:HOOK[dt << get rows where( :Hook == "" )] = "N" );
動作しないでしょう。 代わりに使用するべきではありません:
Try( dt:HOOK[dt << get rows where( is missing(:Hook))] = "N" );
しかし、他の人が言っているように、列は数値なので "N"への代入は機能しません。
Re:Get Rows Whereコマンドは特定の列に対してのみ機能しますはい.....それはそれをするでしょう、しかし、これをするのは良いソフトウェア習慣ではありません。 値を "P"または "N"に設定するのではなく、値を他の数値に変更し、columnプロパティのValue Labelsを使用して指定した数値を変更することをお勧めします。P "または" N " そのようにすれば、"Thresh"値を使ったときと同じように、数値と正しく比較し続けることができますが、ディスプレイには必要なものが表示されます。
Re:Get Rows Whereコマンドは特定の列に対してのみ機能します私はそう思う @txnelson は正しい。
ログからエラーを確認できるように、Try()を試行から削除してください。
これは、数値列に文字値を代入しようとしたときに表示されるエラーの例です。
//:*/
dt=open("$SAMPLE_DATA\Big Class.jmp");
thresh=65;
dt:height[dt << get rows where( :height >= thresh )] = "P";
/*:
Column "height" requires numeric values in access or evaluation of 'Bad Argument'
Re:Get Rows Whereコマンドは特定の列に対してのみ機能しますそれに反しないようにしようとはしませんが、それがその1つの問題に対して機能するとき、それはPとNの挿入の際に自動的に列を文字に変換します。
Re:Get Rows Whereコマンドは特定の列に対してのみ機能します列が数値と連続の場合、値を "P"または "N"に設定しても機能しません。 セルは数値と等しく設定できますが、文字値とは等しく設定できません。
Re:Get Rows Whereコマンドは特定の列に対してのみ機能します私も実際にそれを考慮しました(私のトラブルシューティングは初心者にはぐちゃぐちゃ過ぎていません)が、列情報を見ると、3つの列すべてが "数値"と "連続"に設定されています。
Re:Get Rows Whereコマンドは特定の列に対してのみ機能します列が数値または文字のいずれかであるという問題があります。 列内のセルはすべて文字型または数値型でなければなりません。 あなたのコードでは、"Thresh"という数値と比較するようにHook列に要求しています。 "Thresh"の数値は12です。 次に、Hookの値を文字 "P"または "N"のいずれかに設定します。
Hook、Rounds、Whipの各列は数値ですか、それとも文字ですか?
Re:Get Rows Whereコマンドは特定の列に対してのみ機能します私はそれが*その*シンプルであったことを願います。追加のコードは以下の通りです。私は行方不明のファイル演算子のようなものがあります - あなたは各列置換の後に閉じるか保存する必要があるように?
ここにデフォルトの名前 ( 1 ;
dt = 開いた ( "C:\ test_data.jmp" ;
しきい値= 12年 ; //ユーザーはこのしきい値を設定します(出力の行を定義します)
やってみる (dt:HOOK [dt << 行を取得する (:Hook> = thresh)] = "P" ;
やってみる (dt:HOOK [dt << 行を取得する (:フック== 「」 )] = "N" ;
やってみる (dt:ROUNDS [dt << 行を取得する (:Rounds> = thresh)] = "P" ;
やってみる (dt:ROUNDS [dt << 行を取得する (:ラウンド== 「」 )] = "N" ;
やってみる (dt:WHIP [dt << 行を取得する (:Whip> = thresh)] = "P" ;
やってみる (dt:WHIP [dt << 行を取得する (:ホイップ== 「」 )] = "N" ;
Re:Get Rows Whereコマンドは特定の列に対してのみ機能しますフック値をカット&ペーストして変更した後の線を見せてもらえますか?
私の推測では、フックが表示されている両方の列の2つの場所のどちらかを変更していないのです。