クリップボード内のリストから列を選択するスクリプトフォローアップ....まだ問題があります。
行の値からコピーされた文字列のリストを変換する必要があります。ここに貼り付けると次のようになります。
Tcea1 Atp6v1h Oprk1 Rb1cc1 Fam150a
スクリプトウィンドウに貼り付けると次のようになります
Tcea1
Atp6v1h
作品1
Rb1cc1
クリップボードの内容をこれに変換するコードが必要です
{Tcea1、Atp6v1h、Ork1、Rb1cc1、Fam150a}
これは機能しません.... {"Tcea1、Atp6v1h、Ork1、Rb1cc1、Fam150a"}
ただし、これは {"Tcea1", "Atp6v1h", "Oprk1", "Rb1cc1", "Fam150a"} を実行します
それで....Get Clipboardコマンドを変更して適切な出力を生成するにはどうすればよいですか?それとも、後続のコード行の「」を削除しますか?
ご協力いただきありがとうございます。
2021年6月
これが私のスクリプトです(皆さんからの助けに基づいています!)。これはうまく機能します。この場合、データテーブルの列「Aasdh、Abca2、Abca7、Abcf1、Abi3」を選択します。
新しい問題: クリップボードに列名の大きなリストがある場合、ここのスクリプトに示されているように、列ごとに名前を入力したり変換したりする必要はありません。代わりに、スクリプトでクリップボードを直接使用してデータ フレーム内の列を選択するようにしたいと考えています。
スクリプト内でクリップボードのリストを「Aasdh,Abca2,Abca7,Abcf1,Abi3....」に直接変換するにはどうすればよいでしょうか?
ありがとう!
脚本
//with data table where you want to select the columns now open
Names Default To Here( 1 );
dt = currentdatatable();
// Get list of data column names
col_list = dt << Get Column Names( string );
// User specified column names
cc = {Aasdh,Abca2,Abca7,Abcf1,Abi3};
For( i = 1, i <= N Items( cc ), i++,
If( Contains( col_list, Char( cc[i] ) ),
Column( dt, Char( cc[i] ) ) << Set Selected( 1 )
)
);
高度な統計モデリング自動化とスクリプト作成消費者および市場調査コンテンツの構成データアクセス実験計画法マスカスタマイゼーション品質およびプロセスエンジニアリングRe: クリップボードのリストから列を選択するスクリプトこちらの方が簡単かもしれません。Words 関数の区切り文字として crlf を使用します。
clipb = get clipboard();
print(clipb);
crlf = hex to char("0D0A");
col_list = words(clipb, crlf);
print(col_list);
Big Class 内のいくつかの名前を強調表示して、コードを実行しました。これはログ ウィンドウからの出力です。
"JOE
MICHAEL
DAVID
JUDY
ELIZABETH
LESLIE
CAROL
PATTY"
{"JOE", "MICHAEL", "DAVID", "JUDY", "ELIZABETH", "LESLIE", "CAROL", "PATTY"}Re: クリップボードのリストから列を選択するスクリプト私の前回の回答は、クリップボード内の項目にアクセスする方法を示すことを目的としていました。そこから必要なリストを作成できると思いました。以下は、クリップボード内で見つかった各項目を取得し、「theList」と呼ばれるリストに追加する、より完全な例です。
したがって、次をクリップボードにコピーすると、

そしてスクリプトを実行します
Names Default To Here( 1 );
myClipboard = Get Clipboard();
theList ={};
i=1;
while( word(i,myClipboard,"\!t\!n\!r" ) != "",
insert into(theList,word(i,myClipboard,"\!t\!n\!r" ));
i++;
);
show(theList);
JMPリスト「theList」を作成します。
theList = {"KATIE", "LOUISE", "JANE", "JACLYN", "LILLIE", "TIM", "JAMES", "ROBERT", "BARBARA", "ALICE"};Re: クリップボードのリストから列を選択するスクリプト必要な形式を生成する Rube Goldberg 風の方法を見つけました。後で共有するために完全なスクリプトに統合することを試みます。
次の例では、クリップボード内のリストを取得し、必要な形式に変換します。例: {"Tcea1"、"Atp6v1h"、"Oprk1"、"Rb1cc1、"Fam150a"}
//here get list from clipboard first . Here the column names are genes
//COPY columns names from a row in JMP or excel into your clipboard
//PART ONE
// New data table
// Data Table( "TempGeneList" )
New Table( "TempGeneList" );
//MANUALLY paste the list of column names you want to select into first column
// Transpose data table so your list become columns
Data Table( "TempGeneList" ) << Transpose(
Label( :Column 1 ),
Output Table( "Transpose of TempGeneList" )
);
//the open table "Transpose of TempGeneList" should have your list as colmun names
Names Default To Here( 1 );
dt2 = Current Data Table();
//get the column names into a form that works
genelist = dt2 << Get Column Names( string );
//Voila
Re: クリップボードのリストから列を選択するスクリプトこれを支援するために度重なる努力をしていただきありがとうございます。しかし、私は明確に言っていないと思います。
Getclipboard がこれをくれたら...
{"Tcea1、Atp6v1h、Ork1、Rb1cc1、Fam150a"}
これに変換する必要があります
{"Tcea1", Atp6v1h", "Oprk1", "Rb1cc1, "Fam150a"} 数値を文字列に変換するため、これを好みます
またはこれに
{Tcea1、Atp6v1h、Ork1、Rb1cc1、Fam150a}
その変換をスクリプト化する簡単な方法はありますか?
その後、6 月に提供したスクリプトにより、すべての列が適切に選択されます。通常、私のリストには数百もの列ラベルがあるため、自動化する必要があります。
ありがとう
Re: クリップボードのリストから列を選択するスクリプトGet Clipboard() は、クリップボード内にあるすべてのものを単一の文字列として返します。返された文字列から特定の値を取得するには、JMP のさまざまな文字処理関数を使用して文字列から値を取得する必要があります。
注意として、デフォルトでは、JMP は列値の間にスペーサーとしてタブ文字を配置します。
Big Class というサンプル データ テーブルを開いて、最初の 3 列 (名前、性別、年齢) の最初の 10 行をペースト バッファにコピーした場合、次のスクリプトは、コピーされた 2 行目から個人の名前を返します。ペーストバッファ。
Names Default To Here( 1 );
myClipboard = Get Clipboard();
theWord = Word( 4, myclipboard, "\!t\!n\!r" );
Show( theWord );
Word() 関数は、単語の間隔を決定するために探す区切り文字としてタブ、改行、復帰を使用して、myclipboard 変数から n 番目の単語を返します。\!t は、タブの印刷不可能な文字を示すエスケープ構造です。
このパターンから、データを通過して必要な情報をすべて見つけることができるはずです。
Re: クリップボードのリストから列を選択するスクリプト遅ればせながら....
私のリストは、JMP データ フレームまたは Excel の列からクリップボードにコピーされます
たとえば、3つのコピー文字列、columnQ、columnX、columnBを含むクリップボードの内容を、スクリプト{columnQ、columnX、columnB}でこれに変換する必要があります。
.....しかし、リストしたすべての解決策の結果はシリーズの前後に「」となり、スクリプトは実行されません。「」を取り除くにはどうすればよいですか??
ありがとう
myClipboard = クリップボードを取得();
/*:
「コラムQ」
列X
列B"
//:*/
myClipboard = 単語 (Get Clipboard());
/*:
{"列Q
列X
列B"}
//:*/
myClipboard = Words(Get Clipboard(),);
/*:
{"列Q
列X
列B"}
//:*/
myClipboard = Words(Get Clipboard(),",");
/*:
{"列Q
列X
列B"}
Re: クリップボードのリストから列を選択するスクリプト使用できます
myClipboard = Get Clipboard();
リストをメモリ変数に移動します。この例では、「myClipboard」という名前の変数に移動し、JSL を使用して必要に応じて操作します。
クリップボードに次のものが含まれている場合
Aasdh,Abca2,Abca7,Abcf1,Abi3
次を使用してそれを JMP リストに取得できます。
myClipboard = words(Get Clipboard(),",");