JMP 17.2 > カスタマイズされたレポート > 文字列列ボックス > 長いリストを複数の列に分散するにはどうすればよいですか?JMPコミュニティの皆様、こんにちは。
カスタムレポート(下記参照)の実験を行っています。このレポートでは、String Col Box() 関数を使って、長さの異なるリストを複数の列に分散表示したいと考えています。例えば、スクリプトに表示されているリストでは、各要素を17行×4列に分散表示したいと考えています。
簡略化されたスクリプト(重要な行以外はすべて削除しました):
Names Default to Here (1);
datastring = { "ASPM", "AURKA", "AURKB", "BIRC5", "BUB1", "BUB1B", "CCNB1", "CCNB2", "CCNE2", "CDC20", "CDC6", "CDCA2", "CDCA5", "CDCA8", "CDK1", "CDT1",
"CENPE", "CENPF", "CENPK", "CENPN", "CENPS", "CENPW", "DIAPH3", "DLGAP5", "ECT2", "ESCO2", "FAM83D", "HJURP", "KIF11", "KIF14", "KIF15", "KIF18A",
"KIF18B", "KIF23", "KIF2C", "KIF4A", "KIFC1", "KNL1", "MAD2L1", "MKI67", "NCAPG", "NCAPH", "NDC80", "NEK2", "NUF2", "NUSAP1", "OIP5", "PLK1", "PRC1", "PSRC1",
"PTTG1", "RACGAP1", "SGO1", "SGO2", "SKA1", "SKA3", "SPAG5", "SPC24", "SPC25", "TACC3", "TOP2A", "TPX2", "TRIP13", "TTK", "UBE2C", "UHRF1", "ZWILCH", "ZWINT"};
// The length of the list varies from 4 to 125 items, depending on the specific report
rep_w = New Window ("REPORT TEST",
mainframe = HList Box("DATA",
text_data = TableBox (Col Span Box ("MEMBERS", String Col Box ("Genes", datastring)))
)
);
ありがとう。
よろしくお願いします、
TS
自動化とスクリプト結果の共有と伝達ウィンドウズRe: JMP 17.2 > カスタマイズされたレポート > 文字列列ボックス > 長いリストを複数の列に分散するにはどうすればよいですか?ご希望の実現方法の一つをご紹介します。最終的なコードにループロジックを組み込むことを想定して、コードを個々のハードコードされたステートメントに分割しました。

theList=rep_w[stringcolbox(1)]<
<GET></GET>
Re: JMP 17.2 > カスタマイズされたレポート > 文字列列ボックス > 長いリストを複数の列に分散するにはどうすればよいですか?こんにちは、txnelsonさん
フィードバックありがとうございます。これは、String Col Boxからの入力をテーブルに解析するソリューションを提供しています。実は別の方法を探しています。String Col Box構造内のリストを複数の列に解析する方法です。
最高、
TS
Re: JMP 17.2 > カスタマイズされたレポート > 文字列列ボックス > 長いリストを複数の列に分散するにはどうすればよいですか?これがあなたの望みですか

Names Default to Here (1);
datastring = { "ASPM", "AURKA", "AURKB", "BIRC5", "BUB1", "BUB1B", "CCNB1", "CCNB2", "CCNE2", "CDC20", "CDC6", "CDCA2", "CDCA5", "CDCA8", "CDK1", "CDT1",
"CENPE", "CENPF", "CENPK", "CENPN", "CENPS", "CENPW", "DIAPH3", "DLGAP5", "ECT2", "ESCO2", "FAM83D", "HJURP", "KIF11", "KIF14", "KIF15", "KIF18A",
"KIF18B", "KIF23", "KIF2C", "KIF4A", "KIFC1", "KNL1", "MAD2L1", "MKI67", "NCAPG", "NCAPH", "NDC80", "NEK2", "NUF2", "NUSAP1", "OIP5", "PLK1", "PRC1", "PSRC1",
"PTTG1", "RACGAP1", "SGO1", "SGO2", "SKA1", "SKA3", "SPAG5", "SPC24", "SPC25", "TACC3", "TOP2A", "TPX2", "TRIP13", "TTK", "UBE2C", "UHRF1", "ZWILCH", "ZWINT"};
// The length of the list varies from 4 to 125 items, depending on the specific report
rep_w = New Window ("REPORT TEST",
mainframe = HList Box("DATA",
text_data = TableBox (Col Span Box ("MEMBERS"))
)
);
text_data<
<APPEND></APPEND>
Re: JMP 17.2 > カスタマイズされたレポート > 文字列列ボックス > 長いリストを複数の列に分散するにはどうすればよいですか?ティエリー・S
JSLでこれを一般化する方法を以下に示します。元のリストと整数を必要とする関数を作成しました。この関数は元のリストをn個の小さなリストに分割し、リストのリストを返します。元のリストの項目数がnで割り切れない場合は、n番目の列に残りの項目が格納されます。これにより、列数が多いテーブルや列数が少ないテーブルでもこの関数を再利用できるようになります。
次に、各リストを文字列列ボックスとしてテーブル ボックスに追加して、テーブルを作成します。
Names Default to Here (1);
splitList_fxn = function( {list, n},
// split a list into into n evenly divided lists and return a list of lists
// if list items/n is not an integer, place the extra items in the nth column
{i,j,k,n,lists,thisList,listSize,items},
lists = {};
items = n items( list );
listSize = round( items/n );
k = 0; // counter
for( i = 1, i <= n, i++,
thisList = {};
if( i != n,
// all but the last list
for( j = (k*listSize)+1, j <= listSize*i, j++,
insert into( thisList, list[j] )
),
// last list will be the remaining items in case there is a remainder
for( j = (k*listSize)+1, j <= items, j++,
insert into( thisList, list[j] )
)
);
k++;
insert into( lists, eval list( list( thisList ) ) )
);
return( lists )
);
// number of columns
n = 4;
// original list
datastring = { "ASPM", "AURKA", "AURKB", "BIRC5", "BUB1", "BUB1B", "CCNB1", "CCNB2", "CCNE2", "CDC20", "CDC6", "CDCA2", "CDCA5", "CDCA8", "CDK1", "CDT1",
"CENPE", "CENPF", "CENPK", "CENPN", "CENPS", "CENPW", "DIAPH3", "DLGAP5", "ECT2", "ESCO2", "FAM83D", "HJURP", "KIF11", "KIF14", "KIF15", "KIF18A",
"KIF18B", "KIF23", "KIF2C", "KIF4A", "KIFC1", "KNL1", "MAD2L1", "MKI67", "NCAPG", "NCAPH", "NDC80", "NEK2", "NUF2", "NUSAP1", "OIP5", "PLK1", "PRC1", "PSRC1",
"PTTG1", "RACGAP1", "SGO1", "SGO2", "SKA1", "SKA3", "SPAG5", "SPC24", "SPC25", "TACC3", "TOP2A", "TPX2", "TRIP13", "TTK", "UBE2C", "UHRF1", "ZWILCH", "ZWINT"};
// The length of the list varies from 4 to 125 items, depending on the specific report
// split the original list into n lists of equal size
col_lists = splitList_fxn( datastring, n );
// create table box and append string col boxes with each list
table = tablebox();
for each( {list,index}, col_lists,
table << append( string col box( "Col " || char(index), list ) )
);
// create report window
rep_w = new window( "REPORT TEST",
mainframe = HList Box("DATA",
table
)
);
4

8件

Re: JMP 17.2 > カスタマイズされたレポート > 文字列列ボックス > 長いリストを複数の列に分散するにはどうすればよいですか?splitList_fxn = function( {list, n},
{default local},
lists = {};
Nparts =ceiling(nitems(list)/n);
i=0;
while(nitems(list),
i++;
chunk = remove from (list, 1,Nparts);
Insert Into(lists, eval list({chunk}));
);
if(i
<N></N>
<P><BR /><CODE class=" language-jsl">Insert Into(lists, eval list({chunk})); ?
It's need till:
挿入先: Flatten(0|1)