设置SPSS输出的小数位数
在SPSS中设置输出结果的小数位数并非直接操作。一个很好的选择是使用我们的设置输出表格小数位数工具。另一个方法是更改变量格式。最后,为了实现完全控制,需要使用Python脚本或SaxBasic。
1. 更改变量格式
SPSS输出结果中的小数位数主要取决于统计量、过程和变量格式的组合。通常,调整变量格式是控制输出格式的最简单方法。例如,尝试运行以下语法:
***1. 指定新数值变量的格式。**
set format=f8.2.
***2. 创建迷你测试数据。**
data list free/v1.
begin data
1 2 3
end data.
***3. 基本描述统计。**
descriptives v1.
***4. 更改变量格式。**
format v1(f2.0).
***5. 基本描述统计。**
descriptives v1.
通过比较第一个和第二个描述统计表,可以得出关于小数位数的四个不同规则:
- N(样本量)始终具有零个小数位(这很合理)
- 最小值(Minimum)和最大值(Maximum)直接从变量格式中获取其小数位数
- 平均值(Mean)具有两个额外的小数位
- 标准差(Standard deviation)具有三个额外的小数位
SPSS输出 - 描述统计的小数位数
2. 使用Python脚本
如上所述,通过更改变量格式可以对小数位数进行 一定程度的 控制。然而,这种控制相当有限。例如,平均值(mean)将始终至少具有两位小数,而标准差(standard deviation)将始终比平均值多一位小数。这些限制可以通过SaxBasic(已弃用)或Python脚本来克服。以下是一个非常基本的Python脚本,用于将所有小数位数设置为零:
***将“描述统计”表中的所有小数位数设置为零。**
begin program.import SpssClient
SpssClient.StartClient()= SpssClient.GetDesignatedOutputDoc()
oDoc = oDoc.GetOutputItems()
oItems for index in range(oItems.Size()):
= oItems.GetItemAt(index)
oItem if oItem.GetDescription() == "Descriptive Statistics" and oItem.GetType() == SpssClient.OutputItemType.PIVOT:
= oItem.GetSpecificType()
pTable =pTable.DataCellArray()
dCellsfor rows in range(dCells.GetNumRows()):
for cols in range(dCells.GetNumColumns()):
0)
dCells.SetHDecDigitsAt(rows,cols,
SpssClient.StopClient() end program.
尽管这个基本脚本有点长,但修改它(例如,为不同的统计量设置不同的小数位数)不需要太多额外的代码。另请注意,该脚本可以重写为函数(接受小数位数等参数),并放置在模块中以便于访问。
3. MODIFY TABLES 扩展
另一种微调输出表格中小数位数的方法是使用 MODIFY TABLES 扩展,可以从此处下载。此扩展可以做很多超出设置小数位数的事情,但有些人觉得它很难使用(可能比基本的Python脚本更难)。在底层,它基本上生成并运行一个Python脚本(就像我们刚才看到的那个),给定一些规范。以下是将平均值(Mean)和标准差(Standard deviation)的小数位数设置为1的方法:
***使用 MODIFY TABLES 扩展将描述统计的小数位数设置为1。**
SPSSINC MODIFY TABLES subtype="'Descriptive Statistics'"
SELECT="Mean" "Std. Deviation"
DIMENSION= COLUMNS
LEVEL = -1 PROCESS = ALL
/STYLES APPLYTO=DATACELLS
CUSTOMFUNCTION="customstylefunctions.SetDecimalPlaces(decimals=1)".