如何为具有条件的列编写脚本嗨,
我需要帮助编写一些条件。我附加了一个样本数据集和一个带有条件的word文档。我能够做简单的脚本,但这个超出了我的专业水平:)
谢谢。
Re:如何为具有条件的列编写脚本这个问题有两个部分。第一个是“Result1”列。基于“代码”,“日期”和“循环”列中的信息,对于“代码”列的每个值,表征循环内的变化。因此,每当新的“PD”或“HD”周期开始时,第一个月将被计为一个,并且它将在同一周期内的最后一个月来识别差异。基于此,如果在循环的前三个月内,它将重命名Result1“WI”下的行,如果有最后三个,则重命名“WO”。介于两者之间的任何内容都将重命名为“有效”。但只有在周期(对于特定的“代码”)和AND之间至少有七个月的差异时才会发生这种情况最后一个行可以归类为“WI”(前3个月),一仅作为“WO”(最近3个月),和如果有一可以归类为“有效”(无论是前3个月,也不是循环内的最后3个月)。如果不满足该条件,则Result1可以标记为“N / A”。
第二部分,结果2,用于识别从“HD”到“PD”和“PD”到HD“的循环切换,这些循环切换发生在”代码“列的每个值上。此外,确定是否是第一次,第二次,......,切换发生在“代码”内。
感谢您的帮助,如果此答案澄清了您的问题,请告诉我们。
Re:如何为具有条件的列编写脚本 @ jenny1 ,
我试着仔细研究你的问题并理解你想要做什么。
让我们尝试概述您想要实现的步骤。最初,您可能希望以一个标志开头,其中有“行”,其中“代码”列在连续2行中发生变化,从“PD”变为“HD”,反之亦然。
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列中看到连续的 - 但我在样本数据集中看不到任何内容。这是你想要进入的方向吗?