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

String SPSS将字符串转换为数字变量问题,string,variables,spss,String,Variables,Spss,我有一个带有许多括号和其他标点符号的字符串变量,例如_LSC。当我已经为它指定了一个代码列表时,如何将它轻松地转换为数字变量?i、 e.我不希望它自动重新编码所有内容,因为它对标签使用了错误的值。创建一个包含两个变量的数据集:一个包含当前混乱名称的字符串和一个包含新代码的数字变量。然后,使用按字符串排序的原始数据集和查找数据集,对指定表匹配的文件进行匹配(或使用数据>合并文件>添加变量)。创建一个包含两个变量的数据集:一个包含当前混乱名称的字符串和一个包含新代码的数字变量。然后,使用按字符串排序

我有一个带有许多括号和其他标点符号的字符串变量,例如_LSC。当我已经为它指定了一个代码列表时,如何将它轻松地转换为数字变量?i、 e.我不希望它自动重新编码所有内容,因为它对标签使用了错误的值。

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

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

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

设置此选项时,请按如下方式匹配文件:

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.

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

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

设置此选项时,请按如下方式匹配文件:

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.

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

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

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

您可以使用以下几个功能进行清理:

string CleanedUpVersion (A40).
compute CleanedUpVersion = REPLACE(RTIM(LTRIM(UPCASE(YourOriginalVarName))),'_',''). 
execute.
在这个基本示例中,我们将转换为大写字母,删除前导空格和尾随空格,并通过不替换下划线来删除下划线。
总的来说,这有助于避免为原始变量中表示相同内容的唯一值指定不同的数字,而您希望它们具有相同的数字。

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

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

您可以使用以下几个功能进行清理:

string CleanedUpVersion (A40).
compute CleanedUpVersion = REPLACE(RTIM(LTRIM(UPCASE(YourOriginalVarName))),'_',''). 
execute.
在这个基本示例中,我们将转换为大写字母,删除前导空格和尾随空格,并通过不替换下划线来删除下划线。
总的来说,这有助于避免为原始变量中表示相同内容的唯一值指定不同的数字,而您希望它们具有相同的数字。

当我尝试在:值标签(添加)中输入数值变量的值标签时,我会不断出错“值标签”命令包含一个符号,而不是期望值(数字或字符串)的值。为了与以前的系统兼容,括号内的值是可以接受的。下一个斜杠之前的所有值标签都将被忽略。@Rachael,这是一个单独的问题,请在新问题中发布。在这个问题中,请发布一个数据和相应语法的示例。当我尝试在of:value labels中输入数值变量的值标签时,我不断遇到错误。(添加)value labels命令包含一个符号,而不是期望值(数值或字符串)的值。为了与以前的系统兼容,括号内的值是可以接受的。下一个斜杠之前的所有值标签都将被忽略。@Rachael,这是一个单独的问题,请在新问题中发布。在这个问题中,请发布您的数据样本和相应的语法。