SPSS和R结合使用

魔法师LQ

“邪乎到家必有鬼”

——三体

谷歌或者百度“SPSS中调用R”, 最详细也是最靠谱的就是IBM SPSS社区的这两篇文章:

但是按照其过程,我重复了多次,总是无法成功。

也找到一个比较靠谱的教程:

过程和教程几乎一致,可以不看。

事实证明,问题不出在操作过程上。

如图是我最后得到的,在SPSS中运行R:

下面开始介绍如何实现。

基本信息

平台:windows 10

R版本:R3.2.5

SPSS版本:SPSS 24 (SPSS 25版之后调用R的方法好像出现了很不一样的变动。这里不涉及)。

安装过程

下载IBM SPSS Statistics Version 24 - Essentials for R Version 24.0.0

原本我装的是SPSS的2018测试版,还有SPSS 25版本,但是这个插件貌似最后只更新到SPSS24。所以又去下载了个SPSS 24。

https://www-01.ibm.com/marketing/iwm/iwm/web/pickUrxNew.do?source=swg-tspssp&transactionid=450273727,下载Essentials for R。

这时假如你没有IBMid(其实就是邮箱),它会提示让你先注册什么的。邮箱注册,激活,登录账号什么的这里不谈。

最新的版本也才Version 24.0.0.0,所以假如是更新的版本,则需要找新的方法。更老的版本在此页面下载相应的版本。

下载R

下载后点击安装,过程中要求你制定R3.2目录,可知此插件对应的版本是R3.2,而截止2018年R版本已经到了3.5了,所以要去下载之前的版本。

R镜像站点:https://mirrors.tuna.tsinghua.edu.cn/CRAN/

然后我就从,https://mirrors.tuna.tsinghua.edu.cn/CRAN/,下载一个老版本3.2.5的R。

耐心等待

之后一路下一步下一步,程序会自动拉起CMD以及RCmd,其中会提示,“xxx会花费几分钟”,然后RCmd,黑窗口就摆在那里,上面什么输出都没有

这时候,千万不要关闭这个RCmd窗口

前几次,等了几分钟,我以为是程序卡了。关闭后,点击完成。再打开SPSS,接着文件,新建,语法,输入下面的:

1
2
3
4
5
6
* Encoding: UTF-8.
BEGIN PROGRAM R

print("ghost in the shell")

END PROGRAM.

第一行Encoding: UTF-8.是保存后程序自动加上的。

总是莫名的错误,说明安装有问题。

后来,我重装时打开任务管理器,发现RCmd,占用了一定的网络,证明应该是从网络上下载什么东西。

要提前关闭一些杀毒或者管理的软件(比如电脑管家,360什么的),系统自带的什么defender除外。

所以,一定要耐心等待, 直到黑窗口自动关闭,然后安装完成。

用法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
BEGIN PROGRAM R. 
# Pull the data into a data frame
# 将SPSS中的数据作为一个data frame
testData = spssdata.GetDataFromSPSS()

# Pull the data dictionary into another data frame
# 将数据字典存储到另一个data frame
testDict = spssdictionary.GetDictionaryFromSPSS()

# Take a look
print(testData)
print(testDict)

# Check what data types the variables of the R data frame have

lapply(testData, class)

# Set up a new SPSS database with the same dictionary
spssdictionary.SetDictionaryToSPSS("Test2",testDict)

# Copy the data to the new SPSS database
spssdata.SetDataToSPSS("Test2", testData)

# Tell SPSS you're done creating data
spssdictionary.EndDataStep()

END PROGRAM.