spss如何获取变量的宽度

时间:2018-05-17 20:09:14

标签: spss

我想知道是否有办法在SPSS中输出每个变量的宽度。即变量PUMFID为宽度 5

enter image description here

我的目标(如果可能)是重新创建数据列表格式

variable-label*       start-column-width*     start-column-width + width*

或与屏幕截图

中完全相同

enter image description here

import spss
spss.StartDataStep()
datasetObj = spss.Dataset()
varObj = datasetObj.varlist["PUMFID"]
print("Name : " + varObj.name)
print("measurementLevel:  " + str(varObj.measurementLevel))
print("columnWidth : " + str(varObj.columnWidth))
print("missingValues : " + str(varObj.missingValues))
print("role : " + str(varObj.role))
print("type : " + str(varObj.type))
print("attributes : " + str(varObj.attributes))
print("alignment : " + str(varObj.alignment))
print("index : " + str(varObj.index))
spss.EndDataStep()

结果:

Name : PUMFID 
measurementLevel:  SCALE 
columnWidth : 8 
missingValues : (-2, 99996.0, 99999.0, None) 
role : Input 
type : 0 
attributes : {} 
alignment : 1 
index : 0

现在我不明白为什么python程序(语法文件)的输出中 PUMFID 的列宽为8。它应该是 5 ,如SPSS中的变量视图:列宽度

varObj的目录列表

print(dir(varObj))
['Attribute', 'ValueLabel', '_Variable__attr', '_Variable__ds', '_Variable__vallbl', '__class__', '__delattr__', '__dict__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__re 
pr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_delattributes', '_delvalueLabels', '_getalignment', '_getattributes', '_getcolumnWidth', '_getformat', '_getlabel', '_getmeasurementLevel', '_getmissingValues', '_getname' 
, '_getrole', '_gettype', '_getvalueLabels', '_setalignment', '_setattributes', '_setcolumnWidth', '_setformat', '_setlabel', '_setmeasurementLevel', '_setmissingValues', '_setname', '_setrole', '_settype', '_setvalueLabels', 'alignment', 'attributes', 'c 
olumnWidth', 'format', 'index', 'label', 'measurementLevel', 'missingValues', 'name', 'role', 'type', 'valueLabels']

1 个答案:

答案 0 :(得分:2)

varObj.columnWidt实际上是来自Columns的{​​{1}}属性,它只是一个可视属性。您可能需要查看并Variable View,它将返回varObj.format

F - 用于数字变量; 5 - 是字符总数(包括小数符号!,对于数值变量) 0 - 小数位数

然后,您需要将f5.0字符串切片以仅获取f5.0,如果这是您需要的话。据我所知,除了通过格式之外,没有property / attribute /命令来获取宽度。