我想知道是否有办法在SPSS中输出每个变量的宽度。即变量PUMFID为宽度 5
我的目标(如果可能)是重新创建数据列表格式
variable-label* start-column-width* start-column-width + width*
或与屏幕截图
中完全相同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']
答案 0 :(得分:2)
varObj.columnWidt
实际上是来自Columns
的{{1}}属性,它只是一个可视属性。您可能需要查看并Variable View
,它将返回varObj.format
:
F - 用于数字变量; 5 - 是字符总数(包括小数符号!,对于数值变量) 0 - 小数位数
然后,您需要将f5.0
字符串切片以仅获取f5.0
,如果这是您需要的话。据我所知,除了通过格式之外,没有property / attribute /命令来获取宽度。