開始日を割り当てるにはどうすればよいですか?私は、異なる日付にサイトが参入する縦断的研究を行っています。 それらを比較できるようにするには、各エントリの日付を「1」、2 番目のデータ収集ポイントを「2」などに割り当てる必要があります。 データが長い形式であり、欠落データが多数あります (欠落データ収集)
データは次のようになります。「Count」を生成したいと思います。
ID 日付 Var1 数
001 1 月 1 日。 。
001 2月1日。 。
001 3月1日 10 1
001 4月-1 13 2
002 1月-1 8 1
002 2月-1 10 2
002 3月1日。 。
JRP 式を使用しましたが、最初の小節が欠落しているかどうかに関係なく、すべての行をカウントします。
Re: 開始日を割り当てるにはどうすればよいですか?ありがとう!
私は JMP プログラミングを学ぼうとしており、特に奇妙なリクエストが本に載っていない場合には、この対話が役に立ちます。Re: 開始日を割り当てるにはどうすればよいですか?新しいバージョンの式を添付しました。 最新の変更が記載されているとおりに機能するはずです。
ディスカッション コミュニティは「コード ファクトリー」として意図されているものではないことに注意してください。 ユーザーが問題を解決して学習し、そこから自分自身の問題を解決できるように支援するためにあります。
JMP は豊富なドキュメントを提供します。 に行ってください
ヘルプ==>書籍==>JMPの使用
そして
ヘルプ==>書籍==>スクリプトガイド
Re: 開始日を割り当てるにはどうすればよいですか?素晴らしい! 説明と修正された式をありがとうございます! それは有り難いです。
このリビジョンは、欠落しているパターンが混在している場合を除いて機能します。 たとえば、以下の「Site=001」を参照してください。式 (カウント) とそれによって得られる値を修正した結果は次のようになります。
サイトの日付 Var1 数 What_I_Want
001 5月。 。
001 6月10日 1 1
001 7月。 。
001 8月12日。 2
001 9月15日。 3
002 5月13日 1 1
002 6月14日22
Re: 開始日を割り当てるにはどうすればよいですか?1. あなたが要求しているものを処理する新しい式を含む新しいデータテーブルの例を添付しました
2. はい、:ID 列名をカウンタを再起動する変数名に変更し、:Var 1 を測定列名に変更する必要があります。
3. 「TheColumn」というメモリ変数の名前は変更しないでください。これは列名ではなく、数式内で何らかの計算を行うことだけを目的としています。 新しい式では、変数名がどの列名にも関連していないことを示すために、変数名を「Zippy」に変更しました。 式の最後にある変数の最終リストが列への唯一の接続です。 JMP は、最後に指定されたもの (この場合は Zippy の計算値) を取得し、それを、書式が適用されている列、数式が現在処理されている行に使用される値に渡します。
2. Is Missing() は、関数「:Var 1」の内容が欠損値の場合は 1 を返します。値が欠損していない場合は 0 を返します。「==」 " は "Equal To" の比較演算子です。 したがって、「== 0」は、「Is Missing()」関数が「0」を返すかどうかを尋ねています。これは、変数値が有効な値であることを示します。
Re: 開始日を割り当てるにはどうすればよいですか?ジム、
フォローしていただきありがとうございます。
1. 値が欠落している場合、Count 列のカウントを停止することはできますか? あなたの例では、最後のカウント番号を繰り返しますが、おそらくID番号が変わるまで繰り返します。
2. 数式をコピーして貼り付けました。 数式で変更したのは、データセットと正確に一致するように変数の名前だけです。
3. 「count」という単語がどの変数名にも現れません。 「TheCount」変数の名前を「Column 10」に変更しましたが、同じエラーメッセージが表示されました。 サイト変数の名前も変更してみました。 同じ問題です。
4. JMP Pro 13.1を使用しています
欠落しています (Var1) == 0 の場合、TheCount=1
Var1 が欠落しているかのように変換し、新しい変数 (TheCount)=1? しかし、「==0」は何をするのでしょうか?
変数名も含めてこれが私が持っているものです。
もし(遅れ( :サイトID ) != :サイトID,
もし(不足している( :NozeroValue ) == 0 、
:列 10 = 1 、
:列 10 = 。
)、
もし(不足している( :NozeroValue ) == 0 、
:列 10 =和( :10列目、 1 )
)
);
:列10;
Re: 開始日を割り当てるにはどうすればよいですか?添付したデータテーブルを開いたようです。 そして、あなたが述べたことから、列数の値がわかります。 これらの値が表示されている場合、式は機能しています。 カウントが 2 にしかならない理由は、提供した例のように、ID 列が変更されるとカウントがリセットされ、カウンターが再起動されるためです。
私が提供している式に何か変更はありますか? この再帰的な問題は、「Count」という名前の列の数式で「Count」という名前を使用しようとしている場合に発生する可能性があります。 そのため、計算には変数名「TheCount」を使用します。 数式では、数式に使用する値に渡すために計算された最後の項目が使用されます。
最後に、使用している JMP のバージョンは何ですか?
Re: 開始日を割り当てるにはどうすればよいですか?ふーむ。 同じエラーメッセージ。 提供したデータは私が作成したものですが、ID が私のデータの文字であることを除いて、同じ考えです。 それは違いを生むでしょうか?
また、数式が 2 でカウントを停止したことに気付きました。
ありがとう!
Re: 開始日を割り当てるにはどうすればよいですか?列数の数式セットを含むデータセットが添付されています。
Re: 開始日を割り当てるにはどうすればよいですか?この式では次のエラーが発生します
「行数:2 で不正な参照 (再帰) 1 回」
公式に従っているのですが、どこが間違っているのか分かりません。
Re: 開始日を割り当てるにはどうすればよいですか?これは機能する式の 1 つのバージョンです
If( Lag( :ID ) != :ID,
If( Is Missing( :Var1 ) == 0,
TheCount = 1,
TheCount = .
),
If( Is Missing( :Var1 ) == 0,
TheCount = Sum( TheCount, 1 )
)
);
TheCount;