条件付きの列をスクリプト化する方法こんにちは、
いくつかの条件をスクリプト化するのに助けが必要です。サンプルデータセットとワードドキュメントを条件付きで添付しています。私は簡単なスクリプトを書くことができますが、これは私の専門知識のレベルを超えています:)
ありがとうございました。
再:条件付きの列をスクリプト化する方法問題には2つの部分があります。最初の列は "Result1"列です。列「コード」、「日付」、および「サイクル」からの情報に基づき、列「コード」の各値についてサイクル内の変動を特徴付ける。そのため、新しい「PD」または「HD」サイクルが始まるたびに、最初の月は1としてカウントされ、違いを識別するために同じサイクル内の最後の月に行きます。それに基づいて、Result1の下の行の名前がサイクルの最初の3か月以内にある場合は "WI"、最後の3つがある場合は "WO"に変更されます。間にあるものはすべて「有効」と名前が変更されます。しかし、これはサイクル間に少なくとも7ヶ月の違いがある場合にのみ起こります(その特定の「コード」の場合)、そして少なくとも一つの行は "WI"(最初の3ヶ月)として分類できます。 1 "WO"(過去3ヶ月)のみそしてもしあるなら 1 それは "有効"として分類することができます(最初の3か月もサイクル内の最後の3か月も)。その条件が満たされていない場合は、結果1に「N / A」というラベルを付けることができます。
2番目の部分、結果2は、列 "Code"の各値に対して発生する "HD"から "PD"へ、そして "PD"からHDへのサイクル切り替えを識別するためのものです。また、切り替えがその「コード」内で発生したのは、1回目か2回目かを識別します。
あなたの助けをありがとう、そしてこの答えがあなたの質問を明確にするかどうか私に知らせてください。
再:条件付きの列をスクリプト化する方法 @ jenny1 、
私はあなたの質問を調べ、あなたが何をしようとしているのか理解しようとしました。
達成したいステップの概要を試してみましょう。最初は、「PD」から「HD」へ、またはその逆に「Code」列が2行連続して変化する行があるかどうかを示すフラグから始めたいと思うかもしれません。
Clear Log(); Clear Globals();
dt = Current Data Table();
// Identify rows where 2 consecutive rows change from PD to HD or vice-versa
dt << New Column("Match1",Character,Nominal,Formula(If(Row()==1,0,
If(:Code[Row()-1] == :Code[Row()],
0;
,
1;
)
)
)
);上記のようなものを試しました。これらの条件が満たされている場合、Match1列に連続したものが表示されることが予想されますが、サンプルデータセットには表示されません。これはあなたが行きたいと思う方向ですか?