こんにちは、
for列を実行して、いくつかのデータ列を分類しようとしています。3列または4列のうち、最も高い値を持つ列がその行全体のカテゴリを示します。私は役に立ちませんでしたので、私は新しいコラムでこの式を使ってみました。参考のために、後で保存したデータのサブセットを独自のファイルとして使用しています。
For( i = 1, i < N Row( :Linked Subset ), i++, If( :Linked Subset[i][5] > :Linked Subset[i][3], :Label = "Hormone", If( :Linked Subset[i][4] > :Linked Subset[i][3] & :Linked Subset[i][6] > :Linked Subset[i][3], :Label = "ImmunoChemo", If( :Linked Subset[i][4] > :Linked Subset[i][3], :Label = "Chemo", If( :Linked Subset[i][6] > :Linked Subset[i][3], :Label = "Immuno", :Label = "None" ) ) ) ) )
それから私は代わりにこのスクリプトを実行してみました
dt = Open( "~/One Drive/Work/Research/Exported CSV/Subset.jmp" );
For( i = 1, i < N Row( :Linked Subset ), i++,
If( :Linked Subset[i][5] > :Linked Subset[i][3],
:Label = "Hormone",
If( :Linked Subset[i][4] > :Linked Subset[i][3] & :Linked Subset[i][6] > :Linked Subset[i][3],
:Label = "ImmunoChemo",
If( :Linked Subset[i][4] > :Linked Subset[i][3],
:Label = "Chemo",
If( :Linked Subset[i][6] > :Linked Subset[i][3],
:Label = "Immuno",
:Label = "None"
スクリプトや数式が機能しない理由についてのヘルプは非常に高く評価されています。私は、スクリプトを書くことを試みるとき少し紛失したと認める、それはそれがあるべきものから少し離れていると思う。ファイルをリンクしましたが、プライバシーの問題からデータテーブルの最初の列を削除する必要がありました。
ありがとう
説明してくれてありがとう!式で(:Linked subset)を(dt)に置き換えようとしましたが、指定された列にカテゴリが出力されませんでした。私はまたあなたのクリーンアップバージョンを試してみましたが、それはまだうまくいきませんでした。まだ式に問題がある理由は何ですか?
すべての助けをありがとう。
テーブル変数として列名参照(:Linked Subset)を使用しているため、JMPが混乱しています。 また、IF文を1つだけ使用してif文をクリーンアップできます。 これがまさにあなたが望むものであるかどうかはわかりませんが、目標に近づけるためのヒントが得られるかもしれません。
dt = Open( "~/One Drive/Work/Research/Exported CSV/Subset.jmp" );
For( i = 1, i < N Row( dt ), i++,
If(dt[i][5] > dt[i][3],
:Label = "Hormone",
dt[i][4] > dt[i][3] & dt[i][6] > dt[i][3],
:Label = "ImmunoChemo",
dt[i][4] > dt[i][3],
:Label = "Chemo",
dt[i][6] > dt[i][3],
:Label = "Immuno",
:Label = "None"
);
);