我试图在SPSS中编写一个语法来查看列出的变量(FYCount)并编写一个新变量(FYStart),其日期对应于FYCount。因为有13个不同的FYCount变量,我试图用DO IF ELSE IF循环有效地完成它,但它告诉我我还没有关闭循环。我现在已经用了一段时间来切换它,并且不知道它为什么不关闭并执行命令。对这个初级水平问题的任何帮助都会非常感激!
这是我的代码:
do if FYCount = 1.
compute FYStart = date.dmy(1,7,2003).
else if FYCount = 2.
compute FYStart = date.dmy(1,7,2004).
else if FYCount = 3.
compute FYStart = date.dmy(1,7,2005).
else if FYCount = 4.
compute FYStart = date.dmy(1,7,2006).
else if FYCount = 5.
compute FYStart = date.dmy(1,7,2007).
else if FYCount = 6.
compute FYStart = date.dmy(1,7,2008).
else if FYCount = 7.
compute FYStart = date.dmy(1,7,2009).
else if FYCount = 8.
compute FYStart = date.dmy(1,7,2010).
else if FYCount = 9.
compute FYStart = date.dmy(1,7,2011).
else if FYCount = 10.
compute FYStart = date.dmy(1,7,2012).
else if FYCount = 11.
compute FYStart = date.dmy(1,7,2013).
else if FYCount = 12.
compute FYStart = date.dmy(1,7,2014).
else if FYCount = 13.
compute FYStart = date.dmy(1,7,2015).
end if.
当我运行它时,我收到以下消息: 警告#142。命令名称:EXECUTE LOOP对此命令没有影响。
错误#4095。命令名称:EXECUTE 转换程序包含未闭合的LOOP,DO IF或复杂文件 结构体。使用SPSS Statistics左侧显示的控制级别 用于确定LOOP和DO IF范围的命令。 执行此命令停止
有什么想法吗?
答案 0 :(得分:1)
你的语法看起来很好,没有明显的错误。
错误消息表明您在此系列EXECUTE
语句之前或之后的语法中可能有DO IF
和LOOP
或DO IF
。
尝试在此语法之前执行所有命令,以确保错误与之前或之后的某些内容无关。然后单独运行此语法。关闭会话并在必要时重新启动。
另外请确保您没有激活任何其他嵌套DO IF
。很可能你错过了一个终止的句号......
答案 1 :(得分:0)
假设这实际上是你的代码,试试这个:
COMPUTE FYStart = date.dmy(1,7,2001 + FYCount).