簡単な検索と置換を完了したいと考えています。 より大きなスクリプトを作成していて、一部のテキストを空白として置き換えたいと考えています。 ループと munger 関数を試してみましたが、オンラインで見つけた例はすべて必要以上に複雑のようです。 データセットを添付しました。 基本的には、テーブル全体で「< LOD」を検索し、空白に置き換えたいと考えています。 さらに、「---」についても同じことをしたいと思います。 最後に、テキストを削除した後、スクリプトを使用して列を数値/連続に変更したいと思います。
助けてくれてありがとう!
今日のレッスンのテーマは「Less is More」だと思います。 ありがとう。 それは(再び)完璧に機能します。
多くの場合、グループ別の使用を指定するだけであれば、グループ別の詳細を削除して、何を使用するかを JMP に判断させることができます。以下のスクリプトは、煩雑な要素がなくても問題なく機能します。
Bubble Plot(
X( :RT1 ),
Y( :RT2 ),
Sizes( :Area ),
Coloring( :Group ),
Title Position( 0, 0 ),
By( :Sample ID )
);
ありがとう、そのスクリプトは完璧に機能しました。
余談ですが、(これについて新しいディスカッション スレッドを開始する必要がある場合はお知らせください)、以前に添付したデータを使用して、スクリプトを使用してバブル プロットを作成しようとしています。 すべてを対話的に実行してからスクリプトをコピーできますが、これは最初の列のサンプル ID 名に固有のものです。 このスクリプトをさまざまなデータ テーブルで使用します。データのレイアウトは常に同じですが、ファイルに含まれるサンプルの数とサンプル ID は変わります。 以下のスクリプトを「CM172-001」ではなく、任意のサンプル ID に使用できるように適合させる簡単な方法はありますか。
Bubble Plot(
SendToByGroup( {:Sample ID == "CM172-001"} ),
X( :RT1 ),
Y( :RT2 ),
Sizes( :Area ),
Coloring( :Group ),
Title Position( 0, 0 ),
By( :Sample ID ),
SendToByGroup(
{:Sample ID == "CM172-001"},
SendToReport(
Dispatch(
{"Bubble Plot of RT2 by RT1 Sized by Area Sample ID=CM172-001"},
"1",
ScaleBox,
{Min( 11 ), Max( 22 ), Inc( 2 ), Minor Ticks( 1 )}
),
Dispatch(
{"Bubble Plot of RT2 by RT1 Sized by Area Sample ID=CM172-001"},
"2",
ScaleBox,
{Min( 2.84 ), Max( 2.97 ), Inc( 0.02 ), Minor Ticks( 1 )}
)
)
),
SendToByGroup(
{:Sample ID == "CM172-002"},
SendToReport(
Dispatch(
{"Bubble Plot of RT2 by RT1 Sized by Area Sample ID=CM172-002"},
"1",
ScaleBox,
{Min( 10 ), Max( 35 ), Inc( 5 ), Minor Ticks( 1 )}
),
Dispatch(
{"Bubble Plot of RT2 by RT1 Sized by Area Sample ID=CM172-002"},
"2",
ScaleBox,
{Min( 2.8 ), Max( 3.7 ), Inc( 0.1 ), Minor Ticks( 0 )}
)
)
),
SendToByGroup(
{:Sample ID == "CM172-003"},
SendToReport(
Dispatch(
{"Bubble Plot of RT2 by RT1 Sized by Area Sample ID=CM172-003"},
"1",
ScaleBox,
{Min( 11 ), Max( 22 ), Inc( 2 ), Minor Ticks( 1 )}
),
Dispatch(
{"Bubble Plot of RT2 by RT1 Sized by Area Sample ID=CM172-003"},
"2",
ScaleBox,
{Min( 2.83 ), Max( 2.96 ), Inc( 0.02 ), Minor Ticks( 1 )}
)
)
),
SendToByGroup(
{:Sample ID == "CM172-004"},
SendToReport(
Dispatch(
{"Bubble Plot of RT2 by RT1 Sized by Area Sample ID=CM172-004"},
"1",
ScaleBox,
{Min( 10 ), Max( 30 ), Inc( 5 ), Minor Ticks( 1 )}
),
Dispatch(
{"Bubble Plot of RT2 by RT1 Sized by Area Sample ID=CM172-004"},
"2",
ScaleBox,
{Min( 2.6 ), Max( 3.6 ), Inc( 0.2 ), Minor Ticks( 1 )}
)
)
),
SendToByGroup(
{:Sample ID == "CM172-005"},
SendToReport(
Dispatch(
{"Bubble Plot of RT2 by RT1 Sized by Area Sample ID=CM172-005"},
"1",
ScaleBox,
{Min( 10 ), Max( 30 ), Inc( 5 ), Minor Ticks( 1 )}
),
Dispatch(
{"Bubble Plot of RT2 by RT1 Sized by Area Sample ID=CM172-005"},
"2",
ScaleBox,
{Min( 2.7 ), Max( 3.7 ), Inc( 0.2 ), Minor Ticks( 1 )}
)
)
)
);これは、変更する値を見つけて変更し、列を数値と連続値に設定する単純なコードです。
Names Default To Here( 1 );
dt = Current Data Table();
colList = dt << get column names( character, string );
For( i = 1, i <= N Items( colList ), i++,
selRows = dt << get rows where(
Column( dt, colList[i] )[Row()] == "< LOD" | Column( dt, colList[i] )[Row()] == "---"
);
If( N Rows( selRows ) > 0,
Column( dt, colList[i] )[selRows] = "";
Column( dt, colList[i] ) << data type( "numeric" ) << modeling type( "continuous" );
);
);
さて、それでは一歩が短縮されます! 助けてくれてありがとう。 はるかに簡単です。
データ型を文字から数値に変更すると、「
Names Default to Here( 1 );
dt = New Table( "test",
New Column( "data",
Character, Nominal,
Values( { "3.1", "4.5", "<LOD></LOD>Re: 単純な検索と置換注意の言葉はありがたいのですが、私は指紋をグラフ化するためにデータを使用しているだけであり、化合物が検出されなかったという単純な事実が私たちにとって興味深いのです。 統計分析の場合、提供された検出限界に基づいて ND 値を代入します。
スクリプトに関する質問とは別に、検閲。 正確なデータだけでなく打ち切りデータも処理する推定器を使用する必要があります。