JMPデータテーブルのソートとJMPスクリプトでの行の削除<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />やあ:
私はJMPの新人です。 最初の 2 つの列の条件に基づいてデータ テーブルを並べ替えて書式設定したいと考えています。 最初の列はテキスト文字列 (「LaserID」) で、2 番目の列はデータが取得された時刻 (「time」) です。 私の目標は、元のテーブルとまったく同じ列数を持つ別のテーブルを派生し、特定の「LaserID」のデータが 1 行のみになるようにすることです (つまり、繰り返しはありません)。 同じ「LaserID」を持つ複数の行の削除は、データが取得された時間 (「時間」) に基づいて行われます。
つまり、新しいテーブルは、最新の時刻に取得されたデータを含む一意の「LaserID」を持つ行で構成されます。
実現したいオリジナルテーブルと最終テーブルを添付します。 このタスクのスクリプトの作成にご協力いただければ幸いです。
Re: JMP データテーブルのソートと JMP スクリプトの行の削除こんにちは David さん、私もあなたのスクリプトを使って重複を排除していますが、質問があります。私のコラム (例では「LaserID」列)数値的かつ連続的ですか?私の場合、どういうわけかスクリプトが機能しませんでした。列のプロパティを変更して「文字」にすると、スクリプトは機能します。
ありがとう。
Re: JMP データテーブルのソートと JMP スクリプトの行の削除スクリプト応答のペアを取得しました。 これを対話的に実行したい場合は、次の手順を試してください。
テーブルを並べ替えるレーザーIDと時間。

次に、数式を含む新しい列を作成して、レーザーID現在の行の はレーザーID次の行にあります。 テーブルは次のようにソートされているため、レーザーIDと時間各 LaserID シリーズの最後の行が取得されます。
ここでの秘訣は、次のデータ型の列を使用することです。行の状態そしてその選択された状態数式内の状態関数。
選ぶ列 -> 新しい列...データ型を次のように設定します行の状態。

次に、を追加します方式。

式については、次から始めます。行の状態 -> 選択された状態。

次に、比較を Selected State() 関数内に置きます。 この比較では、 Lag()関数-1 引数を使用して、次の値と比較します。レーザーID次の行にあります。

ここで、列名の前にある星アイコンをクリックして、新しい列の行状態をアクティブな行状態領域にコピーするだけです。

今すぐ使用できますテーブル -> サブセット選択した行をサブセット化します。

それが役立つことを願っています!
-ジェフ
Re: JMP データテーブルのソートと JMP スクリプトの行の削除以下は、max で表を作成してから更新する別のアプローチです。
dt1 =データ表( "イニシャル" ) ;
タブ1 = dt1 <<表にする(
コントロールパネルを表示( 0 ) 、
テーブルの追加(
列テーブル(分析カラム( :時間) 、統計(マックス) ) 、
行テーブル(列のグループ化( :レーザーID ) )
) 、見えない
) ;
dt2 =タブ1 <<データテーブルにする;
タブ1 <<ウィンドウを閉じる() ;
dt2 <<アップデート(
と( dt1 ) 、
列の一致( :レーザーID = :レーザーID 、 :名前( 「最大(時間)」 ) = :時間) 、
更新テーブルから列を追加(
: PRF 、
:名前( 「パワー(W)」 ) 、
:名前( 「プモン(W)」 ) 、
: PRF2 、
:名前( 「パワー2(W)」 ) 、
:名前( 「Pmon2(W)」 )
)
) ;
Re: JMP データテーブルのソートと JMP スクリプトの行の削除次のようなものがそれを行うはずです:
最新の行を取得=関数({ dt 、 ID } 、 {デフォルトのローカル} 、
// 日時順を仮定すると、これははるかに簡単になります。
// 指定されたレーザー ID に一致する行のみを取得します
lstRows = dt <<どこで行を取得するか( :レーザーID == ID ) ;
// 対応する時刻をリストとして取得
最初の時間=桁( dt 、 "時間" )[ lstRows 】 ;
// 最大時間を検索します
ロック=ロックマックス(最初の時間) ;
// 最大時間を含む行を返します
lstRows [ロック】
) ;
//ソースデータテーブル
dt =データ表( "イニシャル" ) ;
// レーザー ID の一意の値のリストを取得します
要約する( lstID =に( :レーザーID )) ;
// 空の最終テーブルを作成します
新しい= dt <<サブセット(数式をコピーする( 0 )) ;
新しい<<すべての行を選択;
新しい<<行の削除;
新しい<<セット名( "最後の" ) ;
// 結果ごとに行を作成します
桁(新しい、 「レーザーID」 ) <<設定値( lstID ) ;
//各 ID を反復処理して、最新の日付を持つ行を検索します
ために(私= 1 、私<= Nアイテム( lstID ) 、私++、
現在のID = lstID [私】 ;
r =最新の行を取得( dt 、現在のID ) ;
見せる( r ) ;
// r 行目の値を新しいデータテーブルに配置します
ために( c = 1 、 c <= Nコル( dt ) 、 c ++、
桁(新しい、 c )[私】 =桁( dt 、 c )[ r 】
)
) ;