您现在的位置:365bet > 客户服务 > 常见问题解答 >

用 syntax 来实现就是: FLIP. SORT CASES BY case_lbl. FLIP NE

浏览次数:135 日期:2019-09-08

  Q:在 SPSS 中能否直接读入 EXCEL 97 数据文件?有无读入数据的简便方法? A:在 SPSS 10.0 版中,任何版本的 EXCEL 文件都可以在 OPEN 对话框中直接打 开。365bet但在 9.0 及以前版本中就比较复杂,实际上 SPSS 7.0 以上的版本都可以读 入 EXCEL 97 和 ACCESS 97 的数据文件。但这些文件类型不能在打开文件对话框 的文件类型中找到,SPSS 是利用 ODBC 来实现对这些数据文件的读取的。例如在 SPSS 9.0 中,请选择 File 菜单-database capture-new query,会弹出数据 库读取向导的对话框,按提示操作即可(你所能够读取的 ODBC 数据类型取决于 你所用计算机上安装的 ODBC 驱动程序的多少)。 实际上对于老版本的 SPSS 来说,读入 EXCEL 97 数据文件最简单的方法是先在 EXCEL 97 中选择并复制所需数据(不要选择变量名),然后在 SPSS 数据界面中 选择一行一列的单元格,将数据粘贴过来,最后将变量名改为原变量名。当变量 少而记录数多时,这种方法是最快的。 返回 Q:如何将 SPSS 的结果文件(*.spo 文件)转换为其它格式? A:SPSS 的结果文件从 7.0 版本起就是专用的*.spo 文件,据我所知,还没有那 种文字处理软件可以将他读出来,但 SPSS 提供了将该文件转存为其它格式的功 能。在 SPSS 的 OUTPUT 窗口中选择 File 菜单-export,可以将结果文件另存为 HTML 文件和 TXT 文件。当然,要比 spo 文件难看的多。图表则自动转化为 JPG 图片,不能再编辑。因此,最好在所有修改都完成后再 EXPORT。另外,该命令 也可以针对单个图片或表格进行,选中所需图片或表格,单击右键,选择快捷菜 单中的 EXPORT 即可。 (详情请参见网站教程) 返回 Q:想将 SPSS 的结果表格直接粘贴到 WORD 中使用,但一粘过去表格的格式就乱 了,如何保持原有的格式? A:选中所需表格,单击右键,选择快捷菜单中的 copy object 即可,此时粘贴 过去的表格就会保持原有的格式(实际上粘贴过去的是一幅图片)。 返回 Q:如何在 SPSS 中实现四格表的卡方检验? A:在多数统计软件中,四格表(和行*列表)的数据格式均为行变量、列变量和 频数变量。如下面这个四格表的数据及相应格式如下: 阳性 阴性 正常 34 发病 23 12 26 行变量 列变量 频数 1 1 2 2 1 2 1 2 34 12 23 26 分析时首先选择菜单 Data-Weight Cases,将频数变量选入 Frequency 格中, 按 OK 确认。此时系统就会以频数表的形式来读取所输入的数据,既记录数应为 34+12+23+26=95 例,而不是 4 例。然后选择菜单 Analyze-Descriptive Statistics-Cross Tables,将行、列变量分别选入相应的 Row、Column 格中, 再按下方的 Statistics 钮, 选中左上角的 Chi-square 复选框,按 Continue 钮, 最后按 OK 即可。 返回 Q:在打开已有的 Excel 表格时可以成功地读入数据,但同时出现 Output1-SPSS Viewer 窗 : Warning. Command name: GET DATA (2109) Encountered a value incompatible with Spss Percent type. Possible loss of data. Ensure that all data within the column contains Percent type values. Note: Future warnings of this type will not be reported because they may be too numerous. * (Row# 12, Column# 5) 这是什么原因? A:该提示的意思是 EXCEL 表格的的 12 行第五列的数据和 SPSS 的格式不兼容, 从而该数值可能无法正确导入, 可能的原因是小数点后的位数太多。这需要谈到 一点编程的问题,EXCEL 和 ACCESS 等的默认数据长度都是 24 位的,无论你的实 际数值为多大。精度高是好事,但这个精度也太高了,会导致小数点后面跟了一 大堆的 0,从而超出 SPSS 所能够承受的精度范围,导致出现警告。这时你需要 检查一下你的数据,比如说太长、或者数字中间打入了一个逗号等,365bet许多时候将 该列的默认数据格式改一下就可以了。 返回 Q:如何在 SPSS 中进行正交设计及正交分析? A:我以前以为 SPSS 不能作正交设计,感谢网友 edof@sh 的提醒,经研究,做法 如下: 设要做二因素的正交设计,A 因素有三个水平,B 因素有两个水平。则选择 Data--Orthogonal Design--generate,弹出的就是正交设计窗口: Factor name 框:输入 A:单击 ADD 钮:单击 Define value 钮:分别在 Value 列的头三行输入 1、2 和 3,单击 continue 钮,这样就定义好了变量 A。 按类似的方法定义好变量 B 的 2 个水平。单击 OK,系统就输出一个新定义的数 据集,前两个变量就是要分析的 A 和 B,各个水平已经按正交设计的要求排列好 了。后面的 status_和 card_变量是系统产生的 LOG 变量,可以不管它。现在你 再建立一个结果变量,输入实验结果,就可以进行正交设计的分析了。 正交设计的分析用 GLM 模块进行。具体操作如下: Analyze-General Linear Model-Univariate... dependent 中选入应变量,fixed factor 中选入自变量。 然后进入 model 钮进行模型设置,这一步非常重要!设置模型为 custom,然后 选择需要分析的主效应和交互作用。然后确认,就可以得到所需要的结果。 请注意, 如果 model 钮进行模型设置时选择错误, 则得到的结果肯定是不正确的。 返回 Q:如何在 SPSS 中作条件 Logistic 回归分析和哑变量分析? A:SPSS 对条件 Logistic 回归是无能为力的,但可以参照 SAS 答疑解惑中的变 换方式对原数据进行变换再进行拟合。至于哑变量,如果将原变量设为分类变量 (即选定为 CAT),则拟合时许多模型会自动按哑变量拟合,但多数情况下得自 行产生新变量。 返回 Q:SPSS 能否用另外一个具有同样数据结构的数据库更新数据?如同 foxpro 中的 Replace 命令? A:SPSS 中 DATA 菜单提供的 MERGE FILES 过程就是用于横向和纵向合并数据文 件的, 一般情况的数据合并问题该菜单都可以解决, 具体用法请参见网站的 SPSS 教程第二章。 返回 Q:在 SPSS 中有无编程语言可写?如 IF....Else..等编程语句? A: SPSS 中有 IF....Else..等编程语句,实际上也可以象其它编程语言一样的使 用。即可以用 SPSS 的 SYNTAX 窗口编写 SPSS 程序来解决,在教程的第四章我有 简单的介绍。 更复杂的情况可以用专门的 SPSS PRODUCTION FACILITY 来完成。 不过, 我们所能碰到的多数问题可以用菜单来完成,如 COMPUTE 中的 IF 子菜单, 不需要去编 SPSS 程序。 返回 Q:方差分析(ANOVA)多个样本均数间的两两比较,即 Post Hoc 对话框中提供 了两种不同情况下的选项,请问 Equal Variance Not Assumed 是在方差不齐时 选用的吗?其下所提供的四种陌生的检验方法可以介绍一下吗? A:是的,的确如此,这些方法就是在方差不齐时选用的。不过这四种检验方法 我也不熟悉,实际上除了 SNK、LSD 等少数几种方法外,对于方差分析的两两比 较理论上就没有统一起来,真正是各说各的理,结果谁也不服谁。不信你去看看 SAS,这四种检验方法根本就找不到!从 SPSS 的帮助内容翻译出来的意思如下: Tamhanes’s h2: 基于 T 检验的一种保守的两两比较方法。 Dunnetts’s t3: 基于标准化最大系数的两两比较方法。 Games-howell: 有时标准过松的两两比较方法。 Dunnett’s C: 基于标准化全距的两两比较方法。 以上四种方法在方差不齐时使用才合适。 返回 Q: SPSS 中 Homogeneous Subsets 下的 S-N-K 是国内教科书中所指的 S-N-K 法吗? 他提供的 LSD 法可用于各组间的两两比较吗?或者说, 可以替代国内教科书中此 种情况下所介绍的 S-N-K 法吗 (因为您知道 LSD 法在教科书中是用于各治疗组与 对照组之间两两比较的)? A:你说的对,此 S-N-K 即彼 S-N-K。不过 SPSS 提供的 LSD 法不能就这样简单的 代替 SNK 法,因为每种方法都有它的设计思想和适用范围,LSD 在推导时就是在 假设有一个标准对照的情况下进行的,如果用它来作任意两组的两两比较,则相 当于随便改变了 alpha 水准,自然不对了。 返回 Q:怎么在 SPSS 中做多组等级资料的等级相关分析,即等级的一致性检验?怎么 做有序表的线性趋势检验? 这些统计方法基本上都在 corsstable 过程中,单击下方的 statisitcs 钮,会弹 出 Statistics 对话框: Norminal 复选框组:就是反映分类资料相关性的一系列指标,其中: Contingency coefficient 复选框:即列联系数; Uncertainty coefficient 复选框:不确定系数。 Ordinal 复选框组:反映有序分类资料相关性的指标,可能有用的有: Kendalls tau-b 复选框; Kendalls tau-c 复选框; 剩下的有: Kappa 复选框:计算 Kappa 值,即内部一致性系数; Risk 复选框:计算比数比 OR 值; McNemanr 复选框:进行 McNemanr 检验(一种非参检验); Cochrans and Mantel-Haenszel statistics 复选框:计算 X2M-H 统计量。 更详细的内容可以参见网站教程的第六课,或其他统计书籍。 返回 Q:两因素以上的方差分析在 SPSS 中用什么来完成? A:这些方差分析一律可归入一般线性模型,所以在 SPSS 中都被归入了 General Lineal Model 子菜单。详情可参见网站的 SPSS 教程。 返回 Q:配对病例对照研究的原始数据如何直接用 SPSS 分析? A: 这个问题据我所知可能无法直接用 SPSS 菜单解决。需要先用程序将数据集换 算成四格表那样的格式再进行分析。 编程思路: 结果中有 case 和 control 两个变量, 依次读入原数据, 由第一条记录得 case=1, 第二条记录得 control=1,即以前的两条变为一条,取值由以前的暴露史决定。1 为暴露,0 则为未暴露。这样就可以得到最终分析用数据,这是我能想到的最简 单的方法了。 返回 Q:SPSS 能在 Windows 2000 系统中使用吗? A:Windows 2000 系统在许多方面是和 WIN9X 系统完全兼容的,在使用 SPSS 上 也是如此,理论上完全可以使用,但问题出在 D 版的执照上,Windows 2000 的 Workstation 相当于一个个人操作系统,SPSS 在上面使用的是单机执照,类似于 WIN9X 的情况 (即市面上 D 版提供的执照)使用时一点问题都没有; , 而他的 Server 版本是一个服务器,在上面使用 SPSS 需要 NETWORK 执照,这是我们所无法得到 的,因此不能安装使用。 以下补充内容由网友 Elan 提供,谢谢他的热心帮助: spss10 在 win2000 下, syntax 是无法识别中文字符的。 所以在用 var labels 或 value labels 语句加标签时,如果存在中文字符, syntax 运行出错。 其他语 句只要存在中文也都是如此。 这个问题可以通过更换 syntax edit 所用的 richedit 控件版本来解决。 只有 spss10.0.7 是 spss 官方承认支持 win2k 的。syntax 存在中文不会出错。 返回 Q:如何删除多个变量? A:在 spss 中,可以通过选中一列变量,再点菜单“clear”的方式来删除变量。 但是,如果要删除的变量很多,并且不是排列在一起的话,用这样的方式无疑是 非常辛苦的。这时候可以用 s yntax 来快速完成。 假设要删除的变量为 VAR1、VAR2、VAR3、?VAR10,并且在 SPSS 文件中的顺序 是连续的,可以用 MATCH FILES file=* /drop=var1 to var10. 如果顺序是不连续的, 那么就不能用 TO 关键字,而只能将各个变量名都写出来, 如 var2 var2 var3..。 “/drop”子命令表示要删除这些变量。或者使用“/keep”子命令,则表示仅保 留这些变量,其它的都删除。 删除变量标签 可以用语句“variable labels 变量 A .”将变量 A 的标签删除。但是在要清 空标签的变量很多的情况下,可以定义一个宏(Macro)来完成。下面就是一个 这样的宏 Syntax: define !nolabel(!positional !cmdend). !do !x !in (!1). variable labels !x . !doend. !end define. 使用该宏用: !nolabel 变量 A 变量 B 变量 C . 一种简单的书写变量名的方法是从菜单“Utilities-Variables”中选择变量, 并点 paste,粘贴到 Syntax 窗口中。 返回 Q:如何更改变量在 SPSS 文件中的顺序? A: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、 从菜单 DataTranspose,在对话框中选中所有变量进入“Variables”列表 框,然后点“OK”,将数据行列转置 2、 从菜单“DataSort Cases”,将数据按照变量 case_lbl 排序 3、 再回到菜单“DataTranspose”,选中变量 case_lbl 进入“Name Variable”,将剩下的所有变量选进“Variables”列表框,按“OK”执行。 和进行行列转置前的数据相对比,数据中多了一个变量 case_lbl,我们可以把 它删除。但是更重要的差别是:行列转置后的数据,所有的变量标签、数值标签 和格式都丢失了,需要重新设置。如果有字符型变量,那么该变量数据将全部丢 失,成为 s ysmis。所以我们在进行数据的行列转置之前,先将文件保存。在执 行完以上三个步骤后,从菜单“FileApply Data Dictionary”选择先前保存过 的文件将其变量标签、数值标签、格式等信息导到转换过的数据中。相应的 syntax 就是: APPLY DICTIONARY FROM=D:\aa.sav. 至于数据中存在字符型变量而又确实要执行以上操作的,可以先用“Automatic Recode”将字符变量转化成数值变量,然后再执行以上操作。 [color=red]创建连续变量名[color]] 需要创建很多变量,但是这些变量名称存在连续性,比如“lvstyl1, lvstyl2, lvstyl3 . . . . lvstyl80”,可以用 data list 命令的 to 关键字: data list /var1 to var80 1-80 (a). begin data. ? end data. execute. 但是运行了 data list 命令后产生新的数据文件,而不是往现有的数据文件里 添加变量。所以,如果是要继续添加变量的话,vector()命令是很好的选择: VECTOR lvsty(180). 上述命令创建 180 个连续的以字符 “lvsty” 开头的变量,lvsty1 到 lvsty180。 Vector()命令还可以指定变量的格式,如: VECTOR lvsty(180,A5). 创建 180 个 5 个字符宽度的字符串类型变量。 在 spss10.07 的另一种方法就是在 variable view 视图里输入变量名,比如 “var01”,拷贝这个名称,然后在其下方某处(要创建几个变量,就往下数几 行)粘贴,SPSS 就会自动创建一串连续的变量 v ar02 var03 ?.