SPSS, как получить ширину переменной - PullRequest
0 голосов
/ 17 мая 2018

Я хотел бы знать, есть ли способ вывести width каждой переменной в 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

Сейчас я не понимаю, почему ширина столбца PUMFID равна 8 в выходных данных программы python (файл синтаксиса).Предполагается, что он будет 5 , как в Просмотр переменных в SPSS: столбец Ширина

Dir-список 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 голосов
/ 17 мая 2018

varObj.columnWidt на самом деле является атрибутом Columns из Variable View, и это только визуальный атрибут. Вы можете посмотреть и varObj.format, и он вернется f5.0:

F - для числовых переменных; 5 - общее количество символов (включая десятичный знак !, для числовых переменных) 0 - количество десятичных знаков

Затем вам нужно будет нарезать строку f5.0, чтобы получить только 5, если это то, что вам нужно. Насколько я знаю, нет свойства / атрибута / команды для получения ширины, кроме как через формат.

...