楼主: 我的素质低
32765 112

[学习资料] 〖On Spss〗三大数据类型导入问题   [推广有奖]

学术权威

83%

还不是VIP/贵宾

-

TA的文库  其他...

〖素质文库〗

结构方程模型

考研资料库

威望
8
论坛币
23388 个
通用积分
28302.3504
学术水平
2705 点
热心指数
2881 点
信用等级
2398 点
经验
223623 点
帖子
2977
精华
52
在线时间
2175 小时
注册时间
2012-11-24
最后登录
2024-1-13

一级伯乐勋章 初级学术勋章 初级热心勋章 初级信用勋章 中级热心勋章 中级学术勋章 中级信用勋章 高级学术勋章 高级热心勋章 高级信用勋章 特级学术勋章

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币


【On Spss】——数据导入


→excel+文本+数据库文件←






〈摘要〉

      三类数据类型都可以用语法导入, SPSS向导读取文本文件通常也有2种方式,一种是用“.”、“tab”、”空格”或其他字符作为变量划分,另一种则是采用固定宽度,很多从数据库系统中导出的文件通常都是这种形势,没有像空格等分隔符将各变量细分开来。

      用syntax语句读取数据库格式文件。






〈同类系列贴〉

〖On Spss〗专治选择恐惧症——对应分析

〖On Spss〗相关的哲学——典型相关



〈excel文件导入〉


      SPSS作为一款数据分析软件,其实并不适合作数据录入。目前,多数市场调研公司都使用EpiData软件作问卷录入,然后再将录入结果导入SPSS中,而对于互联网公司而言,更多的是使用数据库或.CSV格式文件,SPSS默认读取的文件类型有11种,本篇先从读取EXCEL格式文件说起。


7.png


      GUI操作向导方式读取

2.jpg


      SPSS读取EXCEL格式文件采用向导的方式操作非常简单,文件—打开—数据—EXCEL数据文件格式类型等,向导操作唯一值得注意的地方是表格与范围的选择以及是否从EXCEL表首行读取变量名。向导读取EXCEL文件的界面流程参见下图:

3.jpg



      如何一次读取多个EXCEL工作表内容?

      如果要读取多张EXCEL表单的数据又该如何操作呢?(注:这里的多个EXCEL表格必须在同一个工作薄中),其原理其实是将一个EXCEL工作薄当作一个数据库,然后利用数据库读取的方式读取,关于SPSS如何从数据库中读取文件以后再详细介绍,这里可以先看看如下范例:

GET DATA

/TYPE=ODBC

/CONNECT=

'DSN=ExcelFiles;DBQ=c:\examples\data\sales.xls;' +

'DriverId=790;MaxBufferSize=2048;PageTimeout=5;'

/SQL =

'SELECT Location$.[Store Number], State,Region, City,'

' Power, Hand, Accessories,'

' Tires, Batteries, Gizmos, Dohickeys'

' FROM [Location$], [Tools$], [Auto$]'

' WHERE [Tools$].[StoreNumber]=[Location$].[Store Number]'

' AND [Auto$].[StoreNumber]=[Location$].[Store Number]'.  


      上面的代码和从数据库中读取表数据完全一样,只是在/CONNECT语句上做了些许变化,其他的并无区别,当然重点还是后面的提取数据变量语句/SQL,这里要说明的是如果提取变量字符中含有空格的话就需要用[ ]给框起来了,正如上面示例代码所示。


      另外,不得不提的是从多表中读取数据较从单表中读取数据的一些局限性,比如不能像单表一样随意选择数据读取范围;读取表中的第一行非空字符都将强制读取为SPSS中的变量;变量类型较单一,只提供了数字和字符两种数据类型等等。

TIPs:不管采用何种方式读取EXCEL文件,一定要注意变量格式问题。






〈文本文件导入〉


      介绍SPSS如何读取文本格式文件。

1.jpg


      对于SPSS而言,文本格式文件分为两种:一种是格式结构比较单一的简单文本文件;另一种则是形式结构交复杂的文本文件,比如2纬表,字段顺序不一致等,而SPSS向导读取文本文件通常也有2种方式,一种是用“.”、“tab”、”空格”或其他字符作为变量划分,另一种则是采用固定宽度,很多从数据库系统中导出的文件通常都是这种形势,没有像空格等分隔符将各变量细分开来。


Gui向导操作

       对于文本格式文件,GUI向导操作能满足常规的文本文件读取要求,从菜单栏选择读取文本格式文件到SPSS文档形成,一共经过九个步骤,其中文本数据读取向导共六步,依次为:


②         文本导入向导:此步骤可以设定预制格式

        变量排序格式选择,分隔符或是固定宽度以及变量名的读取情况;

③         分隔,选择读取变量起始位置以及读取变量数目数;

④         分隔符的选择以及文本限定符的选择

     变量名称以及变量类型的设定

⑤      文件保存与语法保存设定

5.png


      注意:

      1) 读取文本格式文件时一定要注意变量类型

6.png


      2)当变量字符的宽度超过8192时,需要用file handle设定变量宽度,否则将会出现缺失



〈数据库导入〉



      前面两篇分别介绍了SPSS读取EXCEL格式和文本格式数据,本篇介绍SPSS如何利用syntax语句读取数据库格式文件,至此,SPSS读取数据部分的内容介绍完毕,同时也因为个人电脑相关软件的缺失,关于SPSS软件读取数据库格式数据这部分内容主要来自IBM SPSS官方文档的翻译,更多详情大家可以参见原文件。







    SPSS读取数据库格式文件前提说明

      利用SPSS从数据库中读取相应的数据,必须有相应的数据库驱动,如果是在网络服务器数据库中读取数据则在远程服务器上必须装有对应的数据库驱动。ODBC驱动适合以下数据库:

Ø         ACCESS
Ø         Btrueve
Ø         DB2
Ø         dBASE
Ø         EXCEL
Ø         FoxPro
Ø         Informix
Ø         Oracle
Ø         Paradox
Ø         Progress
Ø         SQL Base
Ø         Sybase




从数据库从读取单个表格数据

      如果你是你一次使用SPSS读取数据库文件,建议你使用向导操作,然后在操作的最后一步将对应的语法paste到syntax窗口即可,尽管这个语法的SQL语句非常繁杂,但也省去了你输入麻烦的connect语句的过程。单张表格的变量、观测值数据和SPSS数据表中数据结构是一样的,所以从数据库中读取单个表格数据是非常简单的。例如,从Access数据库中读取单个表格数据,其语法如下:


  1. GET DATA /TYPE=ODBC /CONNECT=
  2. 'DSN=Microsoft Access;DBQ=c:\xxxx\xxxxx\001.mdb;'+
  3. ' DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;'
  4. /SQL = 'SELECT * FROM CombinedTable'.
  5. EXECUTE.
复制代码

      当然,我们也可以只读取数据库表中的部分数据,这个时候你只需要修改一下SQL语句部分即可,例如:

  1. GET DATA /TYPE=ODBC /CONNECT=
  2. 'DSN=MS Access Database;DBQ=C:\xxx\xxxx\001.mdb;'+
  3. 'DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;'
  4. /SQL =
  5. 'SELECT Age, Education, [Income Category]'
  6. ' FROM CombinedTable'
  7. ' WHERE ([Marital Status] <> 1 AND Internet=1)'.
  8. EXECUTE.
复制代码

从数据库从读取多个表格数据

     在读取多表数据前,你需要了解在数据库中表的几种联合方式:

1)  内部联合:
       2)  左外部联合:第一个表中的所有记录将出现在合并记录中
       3)  右外部联合:和左外部联合正好相反


     当然,左外部联合与右外部联合通常出现的情况较少。事情情况较多的还是内部联合的情况,对于SPSS读取数据库格式数据最重要的还是掌握SQL语言。关于读取多表的范例如下:

  1. *access_multtables1.sps.
  2. GET DATA /TYPE=ODBC /CONNECT=
  3. 'DSN=MS Access Database;DBQ=C:\examples\data\dm_demo.mdb;'+
  4. 'DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;'
  5. /SQL =
  6. 'SELECT * FROM DemographicInformation, SurveyResponses'
  7. ' WHERE DemographicInformation.ID=SurveyResponses.ID'.
  8. EXECUTE.
复制代码






——中国统计网



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:数据类型 SPSS PSS 大数据 Demographic 数据库文件 数据库系统 文本文件 excel 恐惧症

4.png (22.28 KB)

4.png

已有 1 人评分经验 学术水平 收起 理由
xiaowenzi22 + 20 + 1 精彩帖子

总评分: 经验 + 20  学术水平 + 1   查看全部评分

本帖被以下文库推荐

心晴的时候,雨也是晴;心雨的时候,晴也是雨!
扣扣:407117636,欢迎一块儿吐槽!!
沙发
songlinjllive 发表于 2014-9-22 13:14:04 来自手机 |只看作者 |坛友微信交流群

回帖奖励 +1

我的素质低 发表于 2014-9-22 12:54
【On Spss】——数据导入
→excel+文本+数据库文件←

放火啦!

使用道具

藤椅
mmmak47mmm 发表于 2014-9-22 17:02:21 |只看作者 |坛友微信交流群

回帖奖励 +1

不错,学习了~

使用道具

板凳
aquarius_g 发表于 2014-9-23 14:00:09 |只看作者 |坛友微信交流群

回帖奖励 +1

学习,特别是直接从数据库里导出来

使用道具

报纸
amby2008 发表于 2014-9-24 08:49:19 |只看作者 |坛友微信交流群

回帖奖励 +1

不错,学习了。。。。。

使用道具

地板
我的素质低 学生认证  发表于 2014-9-24 12:44:08 |只看作者 |坛友微信交流群
songlinjllive 发表于 2014-9-22 13:14
放火啦!
在哪...

使用道具

7
ayuxi 发表于 2014-11-23 04:16:10 |只看作者 |坛友微信交流群

回帖奖励 +1

顶顶顶

使用道具

8
ruchandsome 发表于 2014-11-27 16:20:14 |只看作者 |坛友微信交流群

回帖奖励 +1

感谢楼主分享!!

使用道具

9
hoho936 发表于 2014-12-7 01:14:42 |只看作者 |坛友微信交流群

回帖奖励 +1

这个是基础啊,不错

使用道具

10
archy001 发表于 2014-12-8 14:41:09 |只看作者 |坛友微信交流群

回帖奖励 +1

看着简单,学问很大,谢谢

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-27 10:52