JMP-Tools アドインの概要 - jthi によって作成された JMP アドインJMP 用に作成したアドインの一部を公開しました。 コードとアドイン (一部は暗号化されています) は、この GitHub ページから見つけることができます。 jthi-jmp-tools (github.com)概要はからご覧いただけますjthi-jmp-tools / JMP-ツール (github.com)リポジトリ。 これらのアドインに関する提案がある場合は、次のことができます。
- この投稿へのコメント
- そのアドインまたは汎用アドインに関連する正しい GitHub リポジトリで問題を開きます
- ここでアドインをリリースした場合は、JMP コミュニティ アドイン ページにコメントしてください
- JMP コミュニティでプライベート メッセージを送信する
これらを開発する目的は、新しいツールを提供し、JMP がすでに持っているツールを強化し、興味深いコードを書きながらスクリプト スキルを向上させることです。 すべてのアドインは次の場所から見つけることができます。 jthi-jmp-tools/JMP-Tools/releases (github.com)そこからダウンロードしてインストールできるはずです。 一部は JMP コミュニティからも入手できます。 アドインには、正しいスクリプトを含めたりコードにコピーしたりすることで、独自のスクリプトで使用できるスタンドアロン関数がいくつか含まれています。そのため、興味がある場合は、ソース コードを確認することをお勧めします。
アドインは、私がその構造化方法についてずっと前に考えていた基本的なアイデアに基づいて構造化されているため、ほとんど同じディレクトリ構造といくつかの共通ファイルがあります。 たとえば、保存できる一部の設定は settings.json ファイルに保存されています。 アドインは次のようにまとめられます。アドインマネージャーJMP が提供するネイティブ ツールよりもはるかに簡単に複数のアドインを管理できるためです。
ほとんどのアドインは、JMP-Tools の [アドイン] メニューに追加されます。

ツールバー用のアドインもあります。 これは、「main-repositorys」リリース ページから見つけることができます。 ここで説明されている (すべて/ほとんどの) アドインをインストールしている場合に最も役立ちます。

以下は私が作成したアドインの簡単な概要です。現在進行中の作業がいくつかあることに注意してください。 コミュニティから見つけられるスクリプトには、タイトルにこの「ブック」リンクが含まれている必要があります。
。
アイデアは、ユーザーに簡単な要約統計と列に対して実行できる簡単なアクションを提供することです。 これは、新しいデータ セットを取得して、作業しているデータの概要を取得するときに実行する最初のツールとして使用できます (部分的には、パンダプロファイリング (github.com) )。

場合によっては、データが間違ってコーディングされたり、間違ったデータ型になったりすることがあります。 JMP では、データ型を文字から数値に変更すると、変換の仕組みにより、簡単に一部のデータが失われる可能性があります。 このツールの目的は、選択した文字列 (安全に変換できる) を数値列に変換することです。ツールは列の値を取得し、数値に変換できるかどうかを確認します。 そして、それらのすべて (または十分な数) を変換できれば、データ型が数値に変更されます。 変換する列を選択したり、変換のしきい値とサンプリング レートを使用したりできます。

このツールは、現在の行番号を持つデータ テーブルに順序付け列を作成します。 これは、分析を開始し、データを並べ替える必要があるが、元の順序にロールバックする可能性がある場合に便利です。 列はデータ テーブルの先頭に作成され、複数の順序付け列が作成される場合はインデックスが追加されます。

また、少し似たようなものがJMPから直接見つかることを期待して、ウィッシュリスト項目も作成しました(列についてはすでに存在しますが、行についてはそうではありません)。開く/作成時に元のオーダーのプロパティ/列を JMP データテーブルに追加します
このツールを使用すると、指定された量 (しきい値) を超える欠損値を持つ複数の列を簡単に削除できます。

このツールを使用すると、ユーザーは、前/次/最も近い見つかった値に基づいて欠損値を埋めることができます。何らかの方法でこれを実行できるツールはすでにあります (JMP にも行を埋める機能があります)。しかし、私が使用した/見たものは次の時点で欠落しています。このアドインで行うグループ化オプションは少なくとも、順序列を使用する場合はデータ テーブルを並べ替える必要はありません。

このツールの目的は、選択したデータテーブルのさまざまな形式で、選択した列 (名目値、序数) からリストされた一意の値をユーザー インターフェイスに提供することです。 このリストから、ユーザーは値を直接コピーしてクリップボードに貼り付けるか、特定のボタンを使用してコピーすることができます。
このツールには、値をボックスに直接貼り付けて、値をさまざまな形式で取得するオプションも提供されます。 これは、たとえば Excel から値をコピーして貼り付けるときに便利です。 クリップボードの値を直接 SQL リストにフォーマットすることもできます。

このアドインの目的は、SQL の listagg と同様の方法で、グループ化された値の列を持つ新しいテーブルを作成する方法をユーザーに提供することです。 最良の場合、このオプションは JMP の Summary プラットフォームと Split プラットフォームにあります。これは、 Summary で分割または集計する場合でも、一部の値を保持したい場合があるからです。

両方のウィッシュリスト項目を作成しましたSplit による複数回答列の作成を許可するそしてListagg/Concatenate/GROUP_CONCAT を Summary プラットフォームに追加テーブル。
2 つのデータテーブルを連続列で結合します。 後方結合、前方結合、最近接/最近接結合が可能です。 結合の許容値/最大距離の使用とグループ化列の使用をサポートします。 データを並べ替える必要はありませんが、並べ替えるとツールの実行が高速化されます。 インスピレーションの一部は以下からPython Pandas - Asof のマージ

これに部分的にリンクされているウィッシュリスト項目を作成しましたファジー結合 / asof マージ / 完全に一致しない列による結合を追加する
JMP の Cols/Reorder Columns メニューにあるほとんどの列順序付けオプションでは、選択した列のみを順序付けすることができません。 このアドインは、JMP ユーザーにこれらのオプションを提供します。

これに関連するウィッシュ リスト項目があります (これがこのアドインを作成した理由です)列の並べ替え > 名前/データ型/役割で並べ替え > 選択された列のみ
10. X を Y に置き換えます ( x-y を置換 (github.com) )
選択した列の完全一致を他の値に置き換えます。

このツールの目的は、データが正しい形式であれば、JMP ユーザーが長い (スタックされた) データを分割し、元のデータから直接仕様限界を設定できるようにすることです。

ユーザー定義のスクリプト (jthi-jmp-tools 用に事前構成) への迅速なアクセスを提供するツール。 また、スクリプトの起動、settings.json ファイルの変更、ディレクトリのオープンへのアクセスも提供します。 現在のデータテーブルを変更することもできます。
Strongy は、簡単にアクセスできるショートカットとして追加することを提案しました。たとえば、私の場合は Ctrl+Shift+Z です。 スクリプトがすでに開いている場合は、再度起動すると前面に表示されます。

これはまだ進行中の作業ですが、アイデアは、ユーザーが指定したディレクトリのファイルリストを提供し、ファイル/ディレクトリを開けられるようにすることです。

今のところはここまでです。まだ未完成のアドインをいつか完成させ、見つかったバグを修正するつもりです。 アドインの最新バージョンは GitHub で見つけることができます。
データのブレンディングとクリーンアップウィンドウズRe: JMP-Tools アドインの概要 - jthi によって作成された JMP アドイン5位!!!!!!Re: JMP-Tools アドインの概要 - jthi によって作成された JMP アドインFill Missing Cellsからお気軽にダウンロードし、アドインをインストールして試してみてください。
同様のことは、Fill を使用して JMP で直接実行できます。

データ テーブル ツール アドインを使用します。私が作成したアドインには、列をグループ化することや、並べ替え用の列がある場合にデータ テーブルを並べ替える必要がないなどの追加の利点があります (並べ替え列が提供されていない場合は、行の順序が使用されます)。
Re: JMP-Tools アドインの概要 - jthi によって作成された JMP アドイン非常に多くの効率的なツールを提供してくれた JTHI に感謝します。
ExcelのVBAをJSLに素早く変更できるプラグインを作ることは可能でしょうか?
ありがとう!
Re: JMP-Tools アドインの概要 - jthi によって作成された JMP アドインVBA は非常に多くのことができ、さまざまな方法で記述できるため、「単純な」アドインを使用して VBA を JSL に直接変換するのは現実的とは思えません。単純な場合には変換できるかもしれませんが、それ以外の場合はケースバイケースで行う必要があります。 JMP を使用して、Run Program() を使用して Excel マクロを実行することもできます。
Re: JMP-Tools アドインの概要 - jthi が作成した JMP アドインEmEditor の置換機能を使用して、ブラウザのコピーを JSL コードにすばやく変換します。
CURL (CMD) はブラウザの F12 からコピーされ、EmEditor の置換機能を使用して JSL コードにすばやく変換されます。
もちろん、このプロセスも JSL で実装する必要があります。

cURL(コマンド)
curl "http://excalc" -H "Connection: keep-alive" -H "Origin: http://excalc.icfqs.com:7616" -H "User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36" -H "Content-Type: text/plain" -H "Accept: */*" -H "Referer: http://excalc.icfqs.com:7616/site/tdx-zbfx/page-ddlj.html?setcode=1^&code=xxxxxx^&name=ssssss^&color=0" -H "Accept-Encoding: gzip, deflate" -H "Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,zh-TW;q=0.7" -H "Cookie: ASPSessionID=" --data-binary "^[^{^\^"funcId^\^":2,^\^"offset^\^":0,^\^"count^\^":200,^\^"cond^\^":^\^"time,11700,33600^|amount,14^\^",^\^"modname^\^":^\^"TickAly^\^"^}^]" --compressed --insecure
EmEditor
document.selection.Replace("\\r","\\n",eeReplaceAll | eeFindReplaceRegExp,eeExFindSeparateCRLF);
document.selection.Replace("\\n\\n","\\n",eeReplaceAll | eeFindReplaceRegExp,eeExFindSeparateCRLF);
document.selection.Replace(" -H ","\\n",eeReplaceAll | eeFindReplaceRegExp,eeExFindSeparateCRLF);
document.selection.Replace("curl \"(.{0,})$","u=\"\\1;h=[=>];//h[\"Content-Type\"]=\"application/json\";",eeReplaceAll | eeFindReplaceRegExp,eeExFindSeparateCRLF);
document.selection.Replace(" --compressed","\\n--compressed",eeReplaceAll | eeFindReplaceRegExp,eeExFindSeparateCRLF);
document.selection.Replace(" --data(.[^\"]{0,})(.{0,})$","\\njj=\\2;",eeReplaceAll | eeFindReplaceRegExp,eeExFindSeparateCRLF);
//document.selection.Replace("\"cookie: (.{0,})$","h[\"cookie\"]=\"\\1;",eeReplaceAll | eeFindReplaceRegExp,eeExFindSeparateCRLF);
document.selection.Replace("\"cookie: (.{0,})$","h[\"cookie\"]=\"\\1;\\nzzzrs=New HTTP Request(URL(u),Method(\"GET\"),Headers(h));//rs=New HTTP Request(URL(u),Method(\"POST\"),JSON(jj),Headers(h));\\nr=rs<<SEND></SEND>JSL(<SPAN>終わらない</SPAN>)
<CODE class=" language-jsl">u="http://excalc";h=[=>];//h["Content-Type"]="application/json";
//h["User-Agent"]="Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36";
//h["ac"]="*/*";
h["cookie"]="ASPSessionID=";
rs=New HTTP Request(URL(u),Method("GET"),Headers(h));//rs=New HTTP Request(URL(u),Method("POST"),JSON(jj),Headers(h));
r=rs<<SEND></SEND><CODE class=" language-jsl">