spss和python_在SPSS里用Python代替宏

在SPSS里用Python代替宏

如果你跟我一样是SPSS syntax的高频使用者,我想你会跟我有同样的苦恼。它简单易学,提供许多常用功能。但毕竟它主要是用于统计分析的工具,在非统计分析方面的功能比较弱。我尤其不喜欢SPSS的宏语句,莫名其妙又规则繁多。好在IBM现在不断提高SPSS的开放性,增加了很多对外的接口,Python就是SPSS的新朋友之一。

虽然在SPSS里用Python有点矫情,但是我这个暂时还舍不得放弃SPSS的人不得不说一句:Python is my saver!

想成为和我一样矫情的人:请在安装好

示例任务:读入一百个txt文件,将其存为sav文件。

syntax:

begin program.

import spss

i=1

while i<=100:

spss.Submit(r”"”

GET DATA

/TYPE=TXT

/FILE=!path+”%s.txt”

/DELCASE=LINE

/DELIMITERS=”\t”

/ARRANGEMENT=DELIMITED

/FIRSTCASE=2

/IMPORTCASE=ALL

/VARIABLES=

id F8

name A10.

CACHE.

EXECUTE.

save outfile=!path+”%s.sav”.

“”" %(i,i))

i=i+1

end program.

解释:

1,Begin program和End program中间是python语句(所以要遵守Python语法),如果你在python而非spss的命令行界面执行这段命令,可以省掉这个openning和ending。

2,spss.Submit后面的括号里是spss命令,r”"”(三引号)意味着中间全部是纯字符串,不用担心引号和双引号。注意这里要遵守的是spss的语法,比如每个命令以“.”结束。

3,%s表示的是将要被替换的字符。在这里我假设文件名是从1到100,我用python将spss的读入文件的命令执行一百次,每一次执行的时候都替换被读入的文件名。如果文件名不是1到100这么简单,也可以用python将文件名保存为一个list,然后依然替换。

4,整件事情的过程是:在SPSS里调用python,然后用python执行SPSS命令。你明白这是多么绕的一件事了吗?知道我为什么首先承认自己矫情了吧?如果你用python而非SPSS命令行界面做这件事,可以略微降低其矫情程度。但是我还要用SPSS做各种事,只是偶尔用python,所以放在SPSS的syntax里面对我来说比较方便。

5,也许你需要我介绍一下宏。我不敢说我非常理解宏,不过我想粗浅说明就够了。wiki里这样介绍:“计算机科学裡的宏是一种抽象(Abstraction),它根据一系列预定义的规则替换一定的文本模式。解释器或编译器在遇到宏时会自动进行这一模式替换。”这里的关键词是替换。当我们需要执行的多个命令非常相似的时候,有一种省力的办法是,每次执行的时候替换命令中的一小部分,而非重新撰写整个命令。当然,还有一种费力的办法是:复制粘贴多次,然后逐一修改,其实本质上是一样的。

宏就是用来做替换这件事的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值