统计211

标题: SPSS灵活运用 [打印本页]

作者: 藤菜    时间: 2011-7-23 20:55
标题: SPSS灵活运用

1、spss中如何删除多个变量

在spss中,可以通过选中一列变量,再点菜单“clear”的方式来删除变量。但是,如果要删除的变量很多,并且不是排列在一起的话,用这样的方式无疑是非常辛苦的。这时候可以用s yntax来快速完成。

假设要删除的变量为VAR1、VAR2、VAR3、…VAR10,并且在SPSS文件中的顺序是连续的,可以用

MATCH FILES file=* /drop=var1 to var10.

如果顺序是不连续的,那么就不能用TO关键字,而只能将各个变量名都写出来,如var2 var2 var3..。

“/drop”子命令表示要删除这些变量。或者使用“/keep”子命令,则表示仅保留这些变量,其它的都删除。

2、如何更改变量在SPSS文件中的顺序

SPSS没有提供相应的对话框来更改变量在文件中的顺序,通过在窗口中拖动变量来之执行这个操作无疑是非常麻烦的。只有通过以下语句:

SAVE OUTFILE='文件名' /keep=var1 var10 var2 to var7 var9 var8

/COMPRESSED.

OUTFILE指定一个文件名,SPSS将把当前的数据保存为该文件;KEEP语句后要写上所有的变量名,按照您想要的顺序书写。未写上的变量将被删除。运行该语句以后打开O UTFILE指向的文件,变量顺序就已经改变了。如果变量很多的话,逐个书写变量名将是一件很烦的事情,这时一个简便的方法是通过菜单( Utilities->Variables)选择变量并paste到SYNTAX中。

以上语句适用于一般情况下的数据,下面再介绍另一种方法。

如果只想让变量按照变量名的顺序排列(升序或降序),并且变量中不包含任何字符型变量。那么可以将SPSS的数据进行行列转置,转换后S PSS自动将原来的变量名保存在一个新变量case_lbl中,再接着对数据按变量case_lbl进行排序(升序或降序),然后再进行一次行列转置,这样就可以实现排序的目的。

用syntax来实现就是:

FLIP.

SORT CASES BY case_lbl.

FLIP NEWNAMES=case_lbl.

用对话框来执行以上操作就是:

1、 从菜单Data>Transpose,在对话框中选中所有变量进入“Variables”列表框,然后点“OK”,将数据行列转置

2、 从菜单“Data>Sort Cases”,将数据按照变量case_lbl排序

3、 再回到菜单“Data>Transpose”,选中变量case_lbl进入“Name Variable”,将剩下的所有变量选进“Variables”列表框,按“OK”执行。

和进行行列转置前的数据相对比,数据中多了一个变量case_lbl,我们可以把它删除。但是更重要的差别是:行列转置后的数据,所有的变量标签、数值标签和格式都丢失了,需要重新设置。如果有字符型变量,那么该变量数据将全部丢失,成为s ysmis。所以我们在进行数据的行列转置之前,先将文件保存。在执行完以上三个步骤后,从菜单“File>Apply Data Dictionary”选择先前保存过的文件将其变量标签、数值标签、格式等信息导到转换过的数据中。相应的syntax就是:

APPLY DICTIONARY

FROM='D:\aa.sav'.

至于数据中存在字符型变量而又确实要执行以上操作的,可以先用“Automatic Recode”将字符变量转化成数值变量,然后再执行以上操作。

3、VECTOR 函数

VECTOR lvsty(180).

上述命令创建180个连续的以字符 “lvsty” 开头的变量,lvsty1 到 lvsty180。

Vector()命令还可以指定变量的格式,如:

VECTOR lvsty(180,A5).

创建180个5个字符宽度的字符串类型变量。




作者: xuying    时间: 2011-7-24 10:41
share
good!
作者: 就科    时间: 2011-11-6 15:42
很实用的技巧!
作者: nick    时间: 2012-10-13 19:41
受教了,谢谢
作者: 风雨    时间: 2013-7-8 15:16

作者: alex潘    时间: 2013-7-9 21:03
还有点看不懂
作者: 樱桃叮当    时间: 2013-7-19 10:43
最愁着编程了




欢迎光临 统计211 (http://www.tj211.com/) Powered by Discuz! X3.2