変数として使用するテーブルに特定の文字列を含むテーブルのみを選択しますこんにちは、
プロセスによって繰り返し生成される一連のテーブルを連結しようとしています。
これらのテーブルの名前はすべて同じプレフィックスで始まります。
開いているすべてのテーブルを簡単に連結できますが、これらのテーブルを特定の接頭辞で連結し、他のテーブルをそのままにしておく正しい構文を見つけることができません。
助言がありますか?
一番
セバスチャン
//The first script to concatenate only tables with 'Pvalue' in the name fails
//But the dtLIst does shows the correct list of tables BUT list them without the 'data table' prefix.
// as a result, the concatenation step does not interpret them as a list of table
clear log();
Names Default To Here( 1 );
try(data table("LogP")<<CLOSE window=""></CLOSE>
Re: 変数として使用するテーブルに特定の文字列を含むテーブルのみを選択しますそれはトリックをしました!
どうもありがとう。
一番、
セバスチャンRe: 変数として使用するテーブルに特定の文字列を含むテーブルのみを選択しますdt の構造が変更されたため、contains を次のように変更する必要があります。
contains(uppercase(dt<<GET name=""></GET>
Re: 変数として使用するテーブルに特定の文字列を含むテーブルのみを選択します謝る必要なし! 私はおそらく最初はあまり明確ではありませんでした。
とにかく、私たちは近くにいる必要がありますが、dtLIst の構築が機能していません。 大文字の有無にかかわらず試してみましたが、役に立ちませんでした
実行からのログは次のとおりです。
'Uppercase' のアクセスまたは評価では、引数は文字でなければなりません。不正な引数 ( dt )、Uppercase/*###*/(dt)
こんなに近くて、まだ遠い…
これが私の現在のコードです
clear log();
Names Default To Here( 1 );
try(data table("LogP")<<CLOSE window=""></CLOSE>
Re: 変数として使用するテーブルに特定の文字列を含むテーブルのみを選択します申し訳ありませんが、あなたの問題は dtLIst の構築にあると思いました。問題は少し異なります。
問題は、連結プラットフォームに適切な情報を提供することにあります。連結プラットフォームの必須入力の構造は次のとおりです。
Data Table() << concatenate( data table(), data table()…., Append to first table(1) );
Concatenate に渡すものは次のとおりです。
Data Table( "LogP" ) << Concatenate( Data Table( {"Pvalues PBS vs PBS", "Pvalues PBS vs 741039", "Pvalues PBS vs 740410", "Pvalues PBS vs 709966", "Pvalues PBS vs 709878", "Pvalues PBS vs 709573", "Pvalues PBS vs 709547", "Pvalues PBS vs 709544"} ), "Append to first table" )
主な問題は、使用している各データ テーブル名を Data Table( "....." ) の形式に変更する必要があることです。
これは、2 つの小さな変更で実行できます。
まず、dtLIst の構造を変更します。データ テーブル名だけではなく、構造全体が必要な場合
For( i = 1, i <= N Table(), i++,
dt = data table(i);
if(contains(uppercase(dt),uppercase(c)),
insert into(dtLIst, dt ))
);
次に、Concatenate ステートメントは次のようになります。
data table("LogP")<<CONCATENATE></CONCATENATE>Re: 変数として使用するテーブルに特定の文字列を含むテーブルのみを選択しますこんにちはジム、
早速のお返事ありがとうございます。 私はあなたが役に立たないように修正しようとしました。
スクリプトを実装したときに取得するログは次のとおりです。
dtLIst =>
"{"Pvalues PBS vs PBS", "Pvalues PBS vs 741039", "Pvalues PBS vs 740410", "Pvalues PBS vs 709966", "Pvalues PBS vs 709878", "Pvalues PBS vs 709573", "Pvalues PBS vs 709547" , "Pvalues PBS vs 709544"}
'Data Table' のアクセスまたは評価でデータ テーブルが見つかりません。Data Table/*####*/(dtLIst)
C:\Users\sburel\Ionis\Neurology Research - Documents\Core\Neurotoxicology\Miscellaneous Research Activities\DATABASE ALL CNS DATA\Associated scripts\intermediate and toy scripts\Toy の 19 行目で、複数のテーブルを特定の文字列で連結する例nam.jsl」
スクリプトの次の部分を使用すると、dxLIst=> で取得したログが次のようになります。
"{DataTable("LogX"), DataTable("LogP"), DataTable("Pvalues PBS vs PBS"), DataTable("Pvalues PBS vs 741039"), DataTable("Pvalues PBS vs 740410"), DataTable("Pvalues PBS vs 709966")、DataTable("Pvalues PBS vs 709878")、DataTable("Pvalues PBS vs 709573")、DataTable("Pvalues PBS vs 709547")、DataTable("Pvalues PBS vs 709544")、DataTable("NT191209 7-DGE in vivo マウス シングル スタック")}"
2 番目のリストは問題なく連結されますが、不要なテーブルが含まれています。 最初のリスト (dtLIst) には、"データ テーブル ("xyz") が含まれていません。
最初のリストの各項目をデータ テーブルとして評価するようにスクリプトに指示する適切な構文を使用していないのではないかと思います。
//This script to concatenate only table with 'Pvalue' in the name fails
//But the dtLIst does shows the correct list of tables BUT list them without the 'data table' prefix.
// as a result, the concatenation step does not interpret them as a list of table
clear log();
Names Default To Here( 1 );
try(data table("LogP")<<CLOSE window=""></CLOSE>多分あなたは私のやり方のエラーを見ることができるでしょう:)
ありがとう
セバスチャン
Re: 変数として使用するテーブルに特定の文字列を含むテーブルのみを選択します本質的に間違っているものは何も見えません.....しかし、大文字/小文字の問題を試している可能性があります
If(contains(uppercase(dt), uppercase(c),
insert into(dtLIst, dt )
);