我用SPSS制作自定义表格,但是当单元格值(百分比)四舍五入到小数点后1位时,它们有时会相加为99,9或100,1而不是100,0。我老板让我把所有的东西都整齐地加起来,加起来是100。这意味着稍微改变输出表中的一些值。在
我编写了一些代码从表中检索单元格值,这很好,但是我找不到任何方法或类允许我更改已经生成的输出中的单元格。我试过类似的方法:
表[(rij,6)]=CellText.编号(十一)
以及
SpssDataCells[(rij,6)]=CellText.编号(十一)
但它总是给我“属性错误:”SpssClient.SpssTextItem'datacellar-ray没有'datacellar'attribute''
如何成功地更改SPSS中输出表的单元格值?在
目前我的代码:
import SpssClient, spss
# Python verbinden met SPSS.
SpssClient.StartClient()
OutputDoc = SpssClient.GetDesignatedOutputDoc()
OutputItemList = OutputDoc.GetOutputItems()
# Laatste tabel pakken.
lastTab = OutputItemList.Size()-2
OutputItem = OutputItemList.GetItemAt(lastTab)
Table = OutputItem.GetSpecificType()
SpssDataCells = Table.DataCellArray()
# For loop. Voor iedere rij testen of de afgeronde waarden optellen tot 100.
# Specifieke getallen pakken.
rij=0
try:
while (rij<20):
b14 = float(SpssDataCells.GetUnformattedValueAt(rij,0))
z14 = float(SpssDataCells.GetUnformattedValueAt(rij,1))
zz14 = float(SpssDataCells.GetUnformattedValueAt(rij,2))
b15 = float(SpssDataCells.GetUnformattedValueAt(rij,4))
z15 = float(SpssDataCells.GetUnformattedValueAt(rij,5))
zz15 = float(SpssDataCells.GetUnformattedValueAt(rij,6))
print [b14,z14,zz14,b15,z15,zz15]
rij=rij+1
except:
print 'Einde tabel'
^{} 方法是更改表中单元格值所需的方法。在
PS.我认为你的老板应该把精力放在更重要的事情上,而不是花大量的时间让百分比加起来整整100%(由于四舍五入)。还要确保在计算中使用尽可能多的小数点精度,以尽量减少这种“差异”。
更新:
只是举个例子来说明这样的操作可以做些什么(除了修复圆错误):
上表显示了呼吸系统药物品牌(R3)的话语权(SoV)份额及其在所有品牌中的排名(前两列数据)和SoV&rank也仅在同一品牌类别内(第三列和第四列)。与上月(7月15日)相比,如果排名上升,则以绿色突出显示,并添加一个向上箭头;如果排名下降,则以红色突出显示,并添加向下的红色箭头。只需在原本单调乏味的桌子上增加一点色彩和视觉效果。在
相关问题 更多 >
编程相关推荐