如何将列值标签转换为值?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />你好,
我是社区新手(但从版本 1 开始就使用 JMP),所以我不知道该问题该放在哪里。
已从 SPSS (.sav) 导入一个文件,其中包含多个带有值标签的列。 我想使用值标签(它们是实际名称)而不是值(它们是数字)。 recode好像没有这个功能。 有人可以帮忙吗? 预先非常感谢。 延斯
回复:如何将列值标签转换为值?感谢所有为此提供帮助的人。 离开计算机有一段时间了,但现在又重新开始使用 JMP 工作。 我会尝试不同的建议,看看哪个对我来说最快。
回复:如何将列值标签转换为值?将列转换为标签列的另一种方法是复制列,将数据粘贴到脚本编辑器窗口(或任何文本窗口)中。 然后从文本窗口复制数据。 粘贴到原始表中的新字符列中。
回复:如何将列值标签转换为值?我无法抗拒尝试将凯伦的想法脚本化。 获取值标签返回一个带有一个参数的表达式:“赋值”列表,例如 2 =“否”。 我想到了两种方法:要么直接使用这些(非法)分配,要么按照 Xan 的建议将它们操纵为匹配表达。
以下是我对这两种方法的尝试。 这里的 Match 方法更快。 对于大型表,如果许多值缺少标签,则性能似乎会变得更加平等。 匹配代码可能可以改进。
open_example_table = Expr(
dt = Open( "$SAMPLE_DATA/CrabSatellites.jmp" );
col = Column( dt, "color" );
col << data type( character );
);
//1
open_example_table;
bt = HP Time();
// Direct assignment code
v = Arg( col << get value labels(), 1 );
For( i = 1, i <= N Items( v ), i++,
col[dt << get rows where( col[] == Arg( v[i], 1 ) )] = Arg( v[i], 2 )
);
// End direct assignment
ht = HP Time();
t1 = ht - bt;
Close( dt, no save );
// 2
open_example_table;
bt = HP Time();
// code for building Match expression by string manipulation
match_expr = Parse(
"Match( col[]," || Substitute( Char( Arg( col << get value labels(), 1 ) ),
"{", "",
"=", ",",
"}", ""
) || ",col[])"
);
For Each Row( col[] = match_expr );
// End Match
ht = HP Time();
t2 = ht - bt;
Show( t1, t2 );
t1 = 1729;
t2 = 1019;
//:*/
回复:如何将列值标签转换为值?好主意,凯伦。
延斯,将标签作为数据取出来并不容易。 我能想到的两种方法:
- 通过脚本编写,您可以使用“获取值标签”并手动或以编程方式操作结果,使其类似于 Recode 在将其保存为脚本时生成的 Match() 表达式。
- 对变量进行制表并对结果使用“生成数据表”。
对于#2,如果它们不在排序的一对一映射中,您将需要某种方法来匹配它们。 步骤:
- 在新列中创建值的副本(不带值标签)

- 使用 Tabulate 将两个变量作为类别列:


- 使用制表命令“制作数据表”来获取没有“值标签”属性的新表。
- 使用“表”>“联接”来匹配原始值,并获得没有值标签的新“带标签”列。
回复:如何将列值标签转换为值?我认为我们想要的(但现在没有)是“用值标签重新编码”。我也时不时想要这个功能。
凯伦
回复:如何将列值标签转换为值?如果您有代码及其值的表,则可以使用 UPDATE 命令添加适当的值列。
回复:如何将列值标签转换为值?你好,谢谢你的提示。 有超过 300 个值标签,我必须在 Recode 中手动输入它们 - 我希望有一种更智能的方法。
回复:如何将列值标签转换为值?将数据类型更改为字符,然后使用重新编码。
回复:如何将列值标签转换为值?嗨,斯坦利,感谢您的帮助。我知道值标签的功能,但我需要的是将 1,2,3 值更改或替换为“否”、“是”(例如,如您的示例中所示)字符值。
我需要连接两个具有匹配列的表,其中一个具有字符值(与另一个表中的值标签相同,即未使用编码),另一个具有带值标签的数值(代码)。
或者有没有一种方法可以根据一个表中列的值标签和另一个表中匹配列中的实际值来动态连接表?
此致
延斯
回复:如何将列值标签转换为值?你好,
如果我正确理解你的问题。
您可以通过列属性打开或关闭值标签。
在此示例中,使用示例数据中的消费者偏好,我能够右键单击该列并取消选中值标签选项。

该列不再使用值标签,如下所示。

我希望这有帮助。
最好的,
斯坦