以一个例如当我们有一系列10个分类变量var1, var2,..., var10
我们创建从这些变量的每5个虚拟变量,其值为从1至5。SPSS的功能类似于Stata中的双/复合引号吗?
的。例如,从var1
我们生成dumvar1_1,..., dumvar1_5
。如果原始变量具有虚拟顺序的对应值,虚拟机将接收值1。那就是,dumvar1_1 = 1 if var1 = 1
;否则为dumvar1_1 = 0
。同样,dumvar1_2 = 1 if var1 = 2
; dumvar1_2 = 0
否则。与其他假人一样。
如果我在Stata做什么,我会做这样的:
forvalues i = 1(1)10 {
forvalues j = 1(1)5 {
generate dumvar`i'_`j' = 0
replace dumvar`i'_`j' = 1 if var`i' == `j'
}
}
有没有办法做同样的SPSS?
简单地说,就Stata而言,你所引用的并不是双复合词或(所用术语)复合双引号。它们是左引用和右引号,用于取消引用或评估本地宏。我不是SPSS的用户,但我怀疑你的问题对于大多数SPSS用户程序员来说是很有意义的,即使他们也知道Stata,如果你只是发布一个关于双循环的问题,那么这个问题对别人来说会更有用创建指标变量。顺便说一句,在Stata中,你可以将内部语句压缩为'generate dum \'i'_'''''''''''''''''' –
感谢您澄清这个术语。虚拟/指标变量的创建是我打算做的一半。另一半是基于原始变量以相当有效的方式赋值(如Stata所做的那样)。由于历史原因,我正在开发的这个项目继承了SPSS和Stata,所以我认为这可能对那些在多个平台上工作的人有帮助。 – NonSleeper