Re: 「条件ステートメント」を使用してデータ行を選択し、単純な列 A - 列 C などを実行する方法私の質問に解決策を提供してくれた SAS テクニカル サポートの Sarah Seligman に心から感謝します。彼女の電子メールからの切り取りと貼り付けは以下のとおりですが、書式設定が失われているため、彼女の X.jmp データ ファイルと回答の PDF を添付しました。数式で JSL 形式を確認しやすくなっています。繰り返しになりますが、最初に JSL の質問に回答してくれた Sarah と Jim に感謝します。
___
こんにちはジェフ、お待たせいたしました。 あなたが説明したと思われることを行う数式を含むデータ テーブルを添付しました。 「ELSEアクションを省略した方法でIFステートメントを構成することは可能ですか?」と尋ねた質問の部分について。 これに対する簡単な答えは「はい」です。条件付き IF ステートメントの「Else」部分を空白のままにしておくだけです。 したがって、1 つの IF ステートメントを使用すると、数式エディターで次のように表示されます。 JSL では、次のようになります。 :TRT 03 - :TRT 01 ) 2 つの IF ステートメントを使用すると、次のようになります。JSL では、次のようになります。 ", :TRT 03 - :TRT 01, :YEAR == "2020" & :CROP == "トウモロコシ" & :TYPE == "IF", :TRT 05 - :TRT 01 ) JSL よりも、キャレット アイコンをクリックして新しい IF 条件を挿入できます。 以下のスクリーン キャプチャでは、3 回クリックして、さらに 3 つの If 式フィールドを追加しています。 あなたが説明した目標に戻ります:「16FLOZ_AddedValue」という名前の新しい列を作成し、数式で実行したい: YEAR = 2020、CROP=Corn、TYPE=Foliar の場合、数式は「TRT3」から列を引いた値を返す必要があります」 TRT1";ただし、YEAR = 2020、CROP=Corn、TYPE=IF (つまり、溝内) の場合、数式は、「TRT5」から列「TRT1」を差し引いた値を「16FLOZ_AddedValue」という名前の同じ列に返す必要があります。ただし、YEAR = 2021、CROP=Corn、TYPE=Foliar の場合、数式は、「16FLOZ_AddedValue」という名前の同じ列で、「TRT4」から列「TRT1」を差し引いた値を返す必要があります。以下は、それに基づく新しい列 16FLOZ_AddedValue の数式です。説明。 添付のデータ テーブルで、列パネルの列名の横にある青色のプラス アイコンをクリックすると、数式エディターで表示できます。 JSL では、この式は次のように記述されます: If( :YEAR == "2020" & :CROP == "トウモロコシ" & :TYPE == "葉", :TRT 03 - :TRT 01, :YEAR == "2020" & :CROP == "トウモロコシ" & :TYPE == "IF", :TRT 05 - :TRT 01, :YEAR == "2021" & :CROP == "トウモロコシ" & :TYPE == "葉", : TRT 04 - :TRT 01 ) また、次のようにも述べています。 ELSE ステートメントに関しては、「IF」の組み合わせが満たされない場合に、式に何らかの隠しアクション ステップを実行させたくないという私の願いです。 つまり、たとえば、YEAR=2020、CROP=Corn、TYPE=Foliar の場合、TRT3-TRT1 のみを計算し、ELSE タイプのアクションを省略します。つまり、残りのセル値はすべてそのままにしておきます。そして、数式が TRT5-TRT1 などを取るように指示する可能性のある次のコンボ IF ステートメントに移動します。ELSE アクションを省略した方法で IF ステートメントを構成することは可能ですか? 私が作成した数式は、最初の IF 条件の基準が満たされたときに適切な値を設定し、次の IF 条件に移動します。 ELSE 条件/値を指定する必要はありません。 この情報がお役に立てば幸いです。 他にご不明な点がございましたら、お気軽にお問い合わせください。 敬具、Sarah Seligman JMP テクニカル サポート シェア。 聞く。 学び。 接続。 - community.jmp.com この件に関してご不明な点がございましたら、引き続きお問い合わせください。 5 営業日以内にこのメールに返信してください。 この返信で質問への回答が十分に得られている場合は、返信して、このメールを受け取り、問題を解決したことをお知らせください。 添付ファイル 7613517300.jmp (6 Kb)
Re: 「条件ステートメント」を使用してデータ行を選択し、単純な列 A - 列 C などを実行する方法こんにちはジム、返信してくれてありがとう。あなたが提供できる助けに感謝し、混乱をお詫びします-私が求めている式のタイプを明確にし、単純化しようとします.
YEAR という名前の列があり、値は 2020 または 2021 です。
CROP という名前の別の列があり、値はトウモロコシまたは大豆のいずれかです。
TYPE という名前の別の列があり、値は Foliar または IF (つまり、溝内) のいずれかです。
処理 1 から 10 (TRT1、TRT2、......、TRT10) の平均収量を表す別の 10 列があります。
各治療 (異なる製品投与率) と対照治療 (0 率) の付加価値を計算する数式が必要です。これがキッカーです。治療数 (線量率 0、1、4、8、16、32、64 FL OZ/エーカーを表す) は、2 年間および CROP と TYPE の間で異なりました。たとえば、16 FL OZ/エーカーの製品線量率は、2020 年のトウモロコシと大豆の「IF」の両方で TRT5 でした。つまり、溝内試験を表し、2021 年のトウモロコシと大豆の「葉面」試験の両方で TRT3 でした。
したがって、YEAR (2) x CROP (2) x TYPE (2) の 8 つの可能な組み合わせがあり、 1式特定の製品投与率と対照処理 (0 率) の bu./acre の変化の値を入力します。たとえば、「16FLOZ_AddedValue」という名前の新しい列を作成し、式を実行する必要があります。 :
YEAR = 2020、CROP=Corn、TYPE=Foliar の場合、式は「TRT3」の値を返す必要があります。マイナス列 "TRT1";しかしながら、
YEAR = 2020、CROP=Corn、TYPE=IF (つまり、溝内) の場合、式は「TRT5」の値を返す必要があります。マイナス「16FLOZ_AddedValue」という名前の同じ列の列「TRT1」。しかしながら、
YEAR = 2021、CROP=Corn、TYPE=Foliar の場合、式は「TRT4」の値を返す必要があります。マイナス「16FLOZ_AddedValue」という名前の同じ列の列「TRT1」。
など(申し訳ありませんが、「IF」を1つの式にまとめる方法がわかりません)。
ELSE コメントに関しては、「IF」の組み合わせが満たされない場合に、式に何らかの非表示のアクション ステップを実行させたくないという私の願望に関係しています。つまり、たとえば、YEAR=2020、CROP=Corn、TYPE=Foliar の場合、TRT3-TRT1 のみを計算し、ELSE タイプのアクションを省略します。つまり、残りのセル値はすべてそのままにしておきます。 TRT5-TRT1 などを取るように数式に指示する次のコンボ IF ステートメントに移動します。
Re: 「条件ステートメント」を使用してデータ行を選択し、単純な列 A - 列 C などを実行する方法疑似コードの解釈に問題があります。
YEAR という数値列があり、その値が 2020 であるかどうかを確認しているとします。
次の名前の列がありますか。
クロップ |トウモロコシ |大豆
または、CROP という名前の列にトウモロコシまたは大豆の値を持たせたいですか?
TYPE という名前の列があり、「IF」の値があるかどうかを確認しているようです。
値が「IF」に等しい場合は、Mean(YIELD(BU/A)_OR, 13) という名前の列と Mean(YIELD(BU/A)_OR, 8) という名前の列の違いを見つけたいとします。
または、列 YIELD の平均を計算しますか?
最後に、ELSE という名前の列を参照し、EMPTY という名前の列と等しいかどうかを判断しています。
これはあなたが望むものではないと確信しています。
データ テーブルのサンプルを提供して、必要なものを言葉で説明できますか。
また、時間を取ってスクリプト ガイドを読むことをお勧めします。これは、JMP ドキュメント ライブラリの [ヘルプ] プルダウン メニューから入手できます。
「条件ステートメント」を使用して実行するデータ行を選択する方法 (例: 単純な列 A ~列 C)助けが要る!
3列または4列からデータ行を選択したい(CONDITIONALステートメントに基づいて、その後、正しい行の選択で条件が満たされた場合など、かなり単純な式を実行します)
もしも(
:年 == 2020年、:クロップ |トウモロコシ|大豆、
:タイプ ==もしも, :"平均(YIELD(BU/A)_OR, 13)"n - :"平均(YIELD(BU/A)_OR, 8)"n,
:ELSE == :EMPTY (可能であれば ELSE ステートメントを使用しないことを好みます。数式を介して新しい列に何が追加されるかを正確に知るために、上記の条件ステートメントが満たされるようにしたいだけです)
また、
もしも(
:年 == 2020年、:クロップ |トウモロコシ|大豆、
:タイプ ==葉面, :"平均(YIELD(BU/A)_OR, 4)"n - :"平均(YIELD(BU/A)_OR, 1)"n,
また、
もしも(
:年 == 2021年、:クロップ |トウモロコシ|大豆、
:タイプ ==もしも, :"平均(YIELD(BU/A)_OR, 6)"n - :"平均(YIELD(BU/A)_OR, 2)"n
また、
もしも(
:年 == 2021年、:クロップ |トウモロコシ|大豆、
:タイプ ==葉面, :"平均(YIELD(BU/A)_OR, 3)"n - :"平均(YIELD(BU/A)_OR, 1)"n
)
高度な統計モデリング消費者および市場調査品質およびプロセスエンジニアリング