SPSS将字符串转换为数字变量问题

时间:2017-01-11 15:37:41

标签: string variables spss

我有一个包含大量括号和其他标点符号的字符串变量,例如_LSC债务许可工作。当我已经有一个指定的代码列表时,如何轻松将其转换为数字变量?即我不希望它自动重新编码所有内容,因为它对标签使用了错误的值。

3 个答案:

答案 0 :(得分:0)

创建一个包含两个变量的数据集:一个包含当前凌乱名称的字符串和一个包含新代码的数字变量。然后,使用原始数据集和按字符串排序的查找,执行MATCH FILES指定表匹配(或使用数据>合并文件>添加变量)。

答案 1 :(得分:0)

您可以准备一个包含两个变量的单独文件:
- 一个包含要重新编码的原始字符串变量中的每个可能值(确保名称和宽度与原始变量相同)
- 第二个包含要重新编码的新值。

当你设置它时,匹配这样的文件:

get file="filepath\Your_Value_Table.sav".
sort cases by YourOriginalVarName.
dataset name ValTab.
get file="filepath\Your_Original_File.sav".
sort cases by YourOriginalVarName.
match files /file=* /table=ValTab /by YourOriginalVarName.
exe.

此时,您的原始文件将包含一个包含您想要的代码的新变量。

答案 2 :(得分:0)

总的来说,我同意其他人提供的解决方案。但是,我想建议一个额外的步骤,它可以使您的查找文件(请参阅eli-k和JKP的答案)更好一些。

关键是你的字符串变量有很多括号和其他标点符号可能也有不同的方法来编写相同的东西。 例如: _LSC债务许可工作 LSC债务许可工作 _LSC债务许可工作 等等 您可以创建一个包含三个变量的查找表:原始字符串变量的唯一值,该变量的清理版本,以及最后要附加的数值。 清理版本的优点是,您可以更容易地识别相同的值,尽管它的编写方式不同。

您可以使用多种功能进行清理:

string CleanedUpVersion (A40).
compute CleanedUpVersion = REPLACE(RTIM(LTRIM(UPCASE(YourOriginalVarName))),'_',''). 
execute.

在这个基本示例中,我们转换为大写字母,删除前导和尾随空白,并通过替换它来删除下划线。 总的来说,这可以帮助避免给原始变量中的唯一值赋予不同的数字,这些数字意味着相同的东西,而您希望它们具有相同的数字。