按变量对列进行排序你好,
我将如何创建一个新列,其中包含按另一个变量对一列进行排序的值?
希望澄清的一个例子:如果我有一个包含两行的表:姓名和年龄,我将如何创建第三行来显示从最旧到最年轻排序的姓名?
谢谢!
回复:按变量对列进行排序尝试一下:
names default to here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt << New Column(
"Sorted names by age",
Expression,
"None",
Formula( :Name[ Rank( :age << Get Values )][ Row() ] )
);
dt << New Column(
"Sorted names by height",
Expression,
"None",
Formula( :Name[ Rank( :height << Get Values )][ Row() ] )
);
请注意,对于大型表来说,它可能会很慢。
编辑以显示更相关的示例。
回复:按变量对列进行排序如果您的数据位于行而不是列中(例如在 Excel 中),则需要在分析之前转置表格。 在您的示例中,转置后,您将有两列:姓名和年龄。 此时,只需按照其他用户的建议按年龄列对表进行排序即可。
回复:按变量对列进行排序您所要求的内容不容易用公式来完成(无论如何我都能想出)。 通过使用交互方式来完成此操作相对容易表格->排序将表排序到新表中,然后将感兴趣的列复制并粘贴回原始表中。
然而这个问题引起了一些人对你真正想做的事情的兴趣。
一般来说,数据表的一行代表单个实体(简单示例中的单个学生)的值集合,并且每一行与其他行无关。 我不确定这个新列(在您的示例中为名称)在分析中有何用处,因为新列仅在其顺序上下文中才有意义。
您能否详细解释一下如何使用这个新专栏?
希望澄清的一个例子:如果我有一个包含两行的表:姓名和年龄,我将如何创建第三行来显示从最旧到最年轻排序的姓名?
PS:您的示例中似乎混淆了行和列。 我假设你的意思是一个有两列的表并且您想要创建第三列,正如您最初的问题所述。 如果我弄错了,您的意思确实是行,请告诉我们。