在过去,我从 Jan-14 中减去了仅月份字符串 (JAN),然后将各个月份重新编码为新标签 (JAN) = (Q1)。 但是这个方法非常手动,有没有我可以嵌入的公式在未来自动化呢?
谢谢 Jarmo - 局部变量功能对我来说是新的,但如果我掌握了它,它看起来可能会改变游戏规则!
创建新列,然后将其添加为公式:
Local({month_list = (month_list = {"JAN", "FEB", "MAR", "APR", "MAY", "JUN", "JUL", "AUG", "SEP", "OCT", "NOV", "DEC"})},
Ceiling(Contains(month_list, Word(1, :MonthYear, "-")) / 3)
)确保您在 :MonthYear 中有正确的列名(在下图中它是 A)

感谢快速响应 - 我在 JMP 14 上,所以没有格式模式。 我添加了一个示例文件,你能告诉我如何使用转换列表吗?
谢谢!
如果您有 JMP16,您可以先将字符列转换为具有格式模式的日期列,然后使用 Quarter 函数
Names Default To Here(1);
dt = Current Data Table();
Column(dt, 1) << Set Name("MonthYear");
Column(dt, 1) << Data Type(Numeric,
Format("Format Pattern", "<MMM><-><YY>", 35),
Input Format("Format Pattern", "<MMM><-><YY>")
);
dt << New Column("Q", Numeric, Ordinal, Formula(Quarter(:MonthYear)));</YY></MMM></YY></MMM>如果你没有 JMP16,你可以做几个月的“转换列表”,然后用它来获取 Quarters
编辑:
16 岁之前的 JMP 公式,不使用月份列表、contains()、word() 和 ceiling() 转换为第一列
dt << New Column("Q",
Numeric,
Ordinal,
Formula(
Local({month_list = (month_list = {"JAN", "FEB", "MAR", "APR", "MAY", "JUN", "JUL", "AUG", "SEP", "OCT", "NOV", "DEC"})},
Ceiling(Contains(month_list, Word(1, :MonthYear, "-")) / 3)
)
)
);