列が存在しない場合に列の変更をスキップするスクリプトこんにちは、みんな、
対象の列が存在しない場合にスクリプトの一部を自動的に無視できる方法はありますか? たとえば、以下に示すスクリプトがありますが、「数値 C」が利用できない場合があります (これは、3 つの変数がある場合とない場合がある自動化の一部です)。 現在、「Numerical C」が見つからない場合、スクリプトはこの部分で停止します。理想的には、複数の「数値 #」を使用して、スクリプトのその部分が存在しない場合は自動的に無視するスクリプトを作成したいと考えています。
データ表( 「1月5日のサブセット」 ) ;
カラム( "カラム" ) <<データ・タイプ(数値) ;
カラム( "カラム" ) <<モデリングタイプ(継続的) ;
カラム( "データ" ) <<データ・タイプ(数値) ;
カラム( "データ" ) <<モデリングタイプ(継続的) ;
カラム( 「数字のA」 ) <<データ・タイプ(数値) ;
カラム( 「数字のA」 ) <<モデリングタイプ(継続的) ;
カラム( 「数字B」 ) <<データ・タイプ(数値) ;
カラム( 「数字B」 ) <<モデリングタイプ(継続的) ;
カラム( 「数字のC」 ) <<データ・タイプ(数値) ;
カラム( 「数字のC」 ) <<モデリングタイプ(継続的) ;
ありがとうございます、
ジョー
Re: 列が存在しない場合に列の変更をスキップするスクリプトこれは、試してみたという内容を取り入れて、機能するように修正するスクリプトです。各ステートメントが何を行っているかを理解できるように、スクリプトに注釈も付けました。
// Set a variable "dt" to point to the data table you want to work on
// In the example you showed, it was a table called "Jan 5 Subset"
dt = Data Table("Jan 5 Subset");
// Now request to get from the data table, now referenced by the
// variable "dt" and return the list as strings
// Using the Contains function, we will check to see if a column
// named "Numerical A" is found in the returned list of column
// names. If it is, the comparison will be true and the statements
// following the "," will be executed
IF( Contains(dt << Get column names(string), "Numerical A"),
// Set the Data Type and Modeling Type for the column "Numerical A"
Column("Numerical A") <<DATA type=""></DATA>Re: 列が存在しない場合に列の変更をスキップするスクリプト2 番目のスクリプトは完璧に機能します。ありがとうございます。Re: 列が存在しない場合に列の変更をスキップするスクリプトこんにちは、ジムさん
素早い返信ありがとうございます。 私は一番上の関数を試しました:
dt =データ表( 「1月5日のサブセット」 );
もし(含まれています( dt < <得るカラム名前(文字列)、 "カラム" )、
カラム( "カラム" ) < <データタイプ(数値) < <モデリングタイプ(連続)
);
しかし、スクリプト内の「(string)」の場所に何を入れればよいのかわかりません。
現時点でスクリプトはこの行で「Send Expects Scriptable Object」で失敗しているようです。 これに対する私の現在のスクリプトは次のようになります。
もし(含まれています( dt <<列名を取得する(弦) 、 「数字のA」 ) 、
「数字のA」 ) <<データ・タイプ(数値) <<モデリングタイプ(継続的) ;
ここに明らかに欠けているものがあった場合は申し訳ありませんが、よろしくお願いします。
Re: 列が存在しない場合に列の変更をスキップするスクリプトこれを行うにはいくつかの方法があります....
1 つ目は、修飾が必要なステートメントを IF 関数内に配置することです。最も正式な方法は、データ テーブルから列名を取得し、その列が見つかったかどうかに基づいて IF 条件を設定することです。
dt = Data Table( "Jan 5 Subset" );
If( Contains( dt << get column names( string ), "Column" ),
Column( "Column" ) << Data Type( Numeric ) << Modeling Type( Continuous )
);
2 番目の方法は、Try 関数を使用して、JMP が検出したエラーを無視させることです。
Try( Column( "Column" ) << Data Type( Numeric ) << Modeling Type( Continuous ) );
ステートメントは失敗する可能性がありますが、JMP は実行を続行します。