Site icon DW Faisalabad

SPSS Set Decimals Output Tables

SPSS doesn’t offer an easy way to set decimal places for output tables. This tutorial proposes a very simple tool for setting decimal places in basic output tables after they’ve been produced. It works best for simple tables such as DESCRIPTIVESMEANS or CROSSTABS.

Setting Decimal Places for Output Tables

Specifying Columns

The diagram below illustrates how to specify columns. Note that the first “columns” don’t count; according to SPSS pivot table terminology, these are not columns but row labels.*

Note that row and column labels are never affected by the Output Decimals tool. Although the diagram shows value labels (“Very bad” and so on) here instead of values, this is not always the case. If values are shown, then decimal places for row and column labels can easily be set by FORMATS.

SPSS Decimal Places in Output – Alternatives

SPSS Python Syntax Example

************10. CREATE DATA.

data list free/id.
begin data
0 0 0 0 0 0 0 0 0 0 0
end data.do repeat v = v1 to v5.
compute v = rv.binom(5,.5).
end repeat.************20. GENERATE SOME TABLES.

descriptives v1 v2.

means v1 by v2.

crosstabs v1 by v2/cells column.

************30. DEFINE FUNCTION.

begin program.
def setOutputDecimals(cols,decs):
import SpssClient
SpssClient.StartClient()
outputDoc = SpssClient.GetDesignatedOutputDoc()
outputItems = outputDoc.GetOutputItems()
for index in range(outputItems.Size()):
outputItem = outputItems.GetItemAt(index)
if outputItem.GetType() == SpssClient.OutputItemType.PIVOT and outputItem.IsSelected():
pTable = outputItem.GetSpecificType()
dataCells = pTable.DataCellArray()
for row in range(dataCells.GetNumRows()):
if cols.lower() != ‘all’:
try:
colList = [int(col) – 1 for col in cols.split(‘,‘)] #Because indexed at 0
except:
print “Invalid column specification. Please specify positive integers separated by commas or the ‘ALL’ keyword.”
break
else:
colList = range(dataCells.GetNumColumns())
for col in colList:
try:
dataCells.SetHDecDigitsAt(row,col,decs)
except:
pass
SpssClient.StopClient()
end program.

************40. TEST: SELECT (ONLY) DESCRIPTIVES TABLE IN OUTPUT AND RUN.

begin program.
setOutputDecimals(‘2,3’,0)
setOutputDecimals(‘4’,1)
setOutputDecimals(‘5’,2)
end program.

************50. TEST: SELECT (ONLY) MEANS TABLE IN OUTPUT AND RUN.

begin program.
setOutputDecimals(‘1’,1)
setOutputDecimals(‘3’,2)
end program.

************60. TEST: SELECT (ONLY) CROSSTAB IN OUTPUT AND RUN.

begin program.
setOutputDecimals(‘all’,0)
end program.

Exit mobile version