没有合适的资源?快使用搜索试试~ 我知道了~
首页ibm spss开发文档.pdf
资源详情
资源评论
资源推荐

一.开发前准备
SPSStatistics产品随附的JAR文件spssjavaplugin.jar
中
提供了用于调用IBM®SPSS®Statistics并
控制SPSSStatistics处理器的界面。JAR文件包含com.ibm.statistics.plugin软件包,该软件包
包含IBM®SPSS®StatisticsJava集成插件中可用的Java类。以下是按操作系统分类的
spssjavaplugin.jar的位置。确保将spssjavaplugin.jar添加到Java类路径。(注意:以外部jar形式
引入)
二.调用实例demo
importcom.ibm.statistics.plugin.*;
publicclassdemo{publicstaticvoidmain(String[]args){
try{
StatsUtil.start();String[]command={"OMS",
"/DESTINATIONFORMAT=HTMLOUTFILE='/output/demo.html'.","DATALIST
FREE/salary(F).",
"BEGINDATA","21450","30000","57000",
"ENDDATA.","DESCRIPTIVESsalary.","OMSEND."};
StatsUtil.submit(command);
StatsUtil.stop();
}catch(StatsExceptione){
e.printStackTrace();
}
}
}
1.语句importcom.ibm.statistics.plugin。*导入com.ibm.statistics.plugin包中的所有类。
2.该StatsUtil.start方法启动SPSS统计处理器。
3.字符串数组指定SPSSStatistics命令语法,该语法创建数据集并运行DESCRIPTIVES过程。
使用StatsUtil.submit方法将命令语法提交给SPSSStatistics。使用OMS命令
将DESCRIPTIVES过程的输出路由到HTML文件。
4.该StatsUtil.stop方法停止SPSS统计处理器应该叫做
5.正确结束SPSSStatistics会话。
6.该StatsException类是本地Java的一个子类异常类,并处理异常特定于该集成插件为
Java。可以继承它以定义应用程序的自定义异常类。

三,提交命令
1.提交单个命令
StatsUtil.submit("GETFILE='/data/Employeedata.sav'.");
StatsUtil.submit("DESCRIPTIVESSALARY.");
2.数组提交命令
StatsUtil.submit("GETFILE='/data/Employeedata.sav'.");
String[]cmdLines={"DESCRIPTIVESSALARYSALBEGIN.","FREQUENCIESEDUC
JOBCAT."};StatsUtil.submit(cmdLines);
3.调试
为了调试的目的,是很方便的在任何调用看到传递给SPSS统计完成的语法提交方法。使用
SETPRINTBACK通过命令语法启用此功能SETPRINTBACKONMPRINTON.
String[]cmdLines={"SETPRINTBACKONMPRINTON.","GETFILE='/data/Employee
data.sav'."};StatsUtil.submit(cmdLines);
StringvarName;
varName=StatsUtil.getVariableName(1);StatsUtil.submit("FREQUENCIES
/VARIABLES="+varName+".");
生成的命令语法显示完成的FREQUENCIES命令以及GET命令。
四.数据字典
DataUtil和StatsUtil类提供了一些方法,用于从活动数据集中获取字典信息。提供以下
信息:
Cursor.getDataFileAttributes。指定的数据文件属性的属性值。
Cursor.getDataFileAttributesNames。活动数据集的任何数据文件属性的名称。
Cursor.getMultiResponseSet。指定的多重响应集的详细信息。
Cursor.getMultiResponseSetNames。活动数据集的任何多个响应集的名称。
Cursor.getNumericMissingValues。指定数字变量的用户缺失值(如果有)。
Cursor.getNumericValueLabels。值标记了指定的数字变量(如果有)。
Cursor.getStringMissingValues。指定的字符串变量的用户缺失值(如果有)。
Cursor.getStringValueLabels。值标记了指定的字符串变量(如果有)。
Cursor.getVariableAttributeNames。指定变量的任何自定义变量属性的名称。
Cursor.getVariableAttributes。指定变量的指定属性的属性值。
Cursor.getVariableCount。活动数据集中的变量数。
Cursor.getVariableFormat。指定变量的显示格式;例如F8.2。
Cursor.getVariableLabel。指定变量的变量标签(如果有)。
Cursor.getVariableMeasurementLevel。指定变量的测量级别。
Cursor.getVariableName。由变量的索引位置指定的变量的变量名。对于文件顺序中的第一
个变量,索引位置从0开始。
Cursor.getVariableRole。指定变量的变量角色(例如,INPUT或TARGET)。
Cursor.getVariableType。指定变量的变量类型(数字或字符串)。

DataUtil.getVariableIndex。指定变量在活动数据集中的索引位置。
DataUtil.getVariableNames。活动数据集中变量的名称。
StatsUtil.getSplitVariableNames。拆分变量的名称(如果有)。
StatsUtil.getWeightVariable。重量变量的名称(如果有)。
实例
StatsUtil.submit("GETFILE='/data/Employeedata.sav'.");
DataUtildatautil=newDataUtil();
String[]varnames=datautil.getVariableNames();
datautil.release();
for(Stringname:varnames){
if(name.toLowerCase().equals("gender")){
String[]command={"SORTCASESBY"+name+".","SPLITFILELAYERED
BY"+name+"."};
StatsUtil.submit(command);
}
}
五.处理活动数据集中的数据
1.用于Java的IBM®SPSS®StatisticsIntegrationPlugin提供了从活动数据集中读取案例数据,
在活动数据集中创建新变量以及将新案例附加到活动数据集的功能。
2.Cursor类提供了用于读取和写入活动数据集的功能。Cursor类的实例创建一个打开的游
标,该游标提供对活动数据集的访问。以下规则适用于游标的使用:
①你不能从方法StatsUtil类使用提交,而数据游标打开,您必须先使用close方法关闭游
标。特别是,如果您需要将对活动数据集所做的更改保存到外部文件,则在关闭游标之后,
使用Submit方法提交SAVE命令。
②在应用程序中的任何位置都只能打开一个数据游标。要定义新的数据游标,必须首先关闭
前一个游标。
③尽管Cursor类提供用于访问活动数据集的完整方法集,但更简单的DataUtil类是
Cursor类的包装,并提供了读取案例,创建新变量和追加新案例的功能。本节中的示例使
用DataUtil类。由于DataUtil类是Cursor类的包装器,因此对游标的上述限制也适用于
DataUtil对象。以下内容适用:
你不能使用StatsUtil方法提交,当类DataUtil对象产生,您必须使用release方法释放与对象
关联的资源。由于使用游标,如果你需要保存到活动数据集发到外部文件的更改,需要使用提交方
法提交SAVE在释放命令DataUtil对象之后。
一次只能存在一个DataUtil对象。要创建一个新的DataUtil对象,您必须首先释放前一
个对象。
3.读取数据
您可以使用DataUtil类中的fetchCases方法检索案例。
您可以按顺序一次检索一个案例,也可以通过一次调用fetchCases方法检索多个案例(包
括所有案例)。

系统缺失值始终以Java
空
值形式返回,但是您可以指定将用户缺失值视为有效值还是也返回
为null。请参阅有关丢失数据的示例。
缺省情况下,从表示日期,日期和时间的变量中检索到的数据以从1582年10月14日开始的秒
数给出。您可以指定从IBM®SPSS®Statistics变量中读取的值具有日期或日期时间格式可以
使用setConvertDateTypes方法转换为JavaCalendar对象,如以下示例所示。
检索案例时,将使用FILTER或USE命令指定的任何案例过滤。
实例代码
StatsUtil.submit("GETFILE='/data/demo.sav'.");
DataUtildatautil=newDataUtil();
datautil.setConvertDateTypes(true);
Case[]data=datautil.fetchCases(false,0);
Doublenumvar;
Stringstrvar;
Calendardatevar;
for(Caseonecase:data){
for(inti=0;i<onecase.getCellNumber();i++){
CellValueFormatformat=onecase.getCellValueFormat(i);
if(format==CellValueFormat.DOUBLE){
numvar=onecase.getDoubleCellValue(i);
}elseif(format==CellValueFormat.STRING){
strvar=onecase.getStringCellValue(i);
}elseif(format==CellValueFormat.DATE){
datevar=onecase.getDateCellValue(i);
}
}
}
datautil.release();
您首先创建DataUtil类的实例。在此示例中,变量datautil是一个DataUtil对象。
该setConvertDateTypes方法指定值从SPSS统计变量读取日期或日期时间格式将被转换为
Java日历对象。
该fetchCases方法检索活动数据集中的所有情况。第一个参数指定缺少用户的值将被视为
丢失,因此将其转换为Java
空
值。第二个参数指定将从案例0开始的所有案例从活动数据集
中检索。您可以通过为第二个参数指定不同的值来检索从任意个案编号开始的个案。您还可
以使用重载形式的fetchCases检索指定数量的案例,并使用第三个参数指定要检索的案例
数量。
该fetchCases方法返回一个案例对象,表示箱子的阵列。数组的给定元素中的项目在文件
数据的特定情况下对应于活动数据集中数据的变量值。您可以从Case对象的
getCellNumber方法获得每种情况下的项目数。
案例每个项目中的值类型可从Case对象的getCellValueFormat方法获得。使用特定于每
种值类型的方法从Case对象中检索值,如此处所示的数字,字符串和日期值。
4.
检
索
变
量
子
集
的
数据
您可以指定要为其检索数据的变量的子集。您可以通过名称或变量在活动数据集中的索引位
置来指定变量集。对于文件顺序中的第一个变量,索引位置从0开始。
StatsUtil.submit("GETFILE='/data/employeedata.sav'.");
DataUtildatautil=newDataUtil();
String[]varNames=newString[]{"id","educ","salary"};
datautil.setVariableFilter(varNames);
Case[]data=datautil.fetchCases(false,0);
剩余15页未读,继续阅读












安全验证
文档复制为VIP权益,开通VIP直接复制

评论0