【问题标题】:SPSS- assigning mulitple numeric codes to one variableSPSS-将多个数字代码分配给一个变量
【发布时间】:2015-03-21 14:02:42
【问题描述】:

我正在尝试将多个代码分配给现有变量。我正在使用下面的语法,但它只会分配为 hosp.id.number 输入的第一个代码。

语法示例:

 Do if (hosp.id.number=9037) or (hosp.id.number=1058) or      (hosp.id.number=11256).
 Compute role_EM_communication=10.
 Else if (hosp.id.number=9037. 
 Compute role_EM_communication=11.
 End if.
 Execute.

hosp.id.number 需要编码为 10 和 11,但它只会将其编码为 10。无论如何,重新措辞以便 SPSS 将接受 2 个或更多代码作为变量,例如 hosp.id.number

【问题讨论】:

  • 首先,Else if (hosp.id.number=9037. 行缺少右括号。其次,你的问题没有意义。或者,允许对单个变量 (role_EM_communication) 进行双重赋值的逻辑毫无意义。最后,ELSE IF 永远不会被执行,因为同样的条件在它之前的DO IF 中也是成立的。
  • 复制/粘贴语法时,右括号被意外删除。语法在某种程度上确实有效。它正在分配所有适当的代码,只有它只会为每个 hosp id 分配一个代码——当我需要它时,根据数据(根据需要)为每个 id 分配 1-3 个代码。它是否正在执行所有尚未分配 hosp id 的 else if?你对如何用语法做到这一点有什么建议吗?我需要在数据集中分配一些 hosp id 的多个代码,并将这些多个代码计算在频率表中。

标签: syntax spss


【解决方案1】:

您的 role_EM_communication 变量是单个变量,但根据您的说法,我认为您需要将它作为一个 集合(对于相同的记录,它可能不止一个代码)。因此,您需要创建 n 个变量,命名为 role_EM_communication_1role_EM_communication_n,其中 n 是您估计一条记录可能的最大代码数。

对于你的例子,它会这样翻译:

创建 2 个变量:

vector role_EM_communication_ (2, f2.0).

进行第一次重新编码:

if any(hosp.id.number,9037,1058,11256) role_EM_communication_1=10.

非常重要 - 执行重新编码

exe.

检查第一个变量是否有数据,如果是则填充第二个变量:

if miss(role_EM_communication_1) and any(hosp.id.number,9037) role_EM_communication_1=11.
if ~miss(role_EM_communication_1) and any(hosp.id.number,9037) role_EM_communication_2=11.
exe.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-08
    • 2016-09-23
    • 2014-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-08
    相关资源
    最近更新 更多