我试图计算一天属于哪个财政周,我的代码在Spyder和PythonTutor中正确运行,但是当我尝试通过SPSS的Python功能运行它时,我得到了一个不同的错误
Spyder中的代码:
from datetime import date, timedelta
VisitDate=date(2017,9,10)
def WhichWeek(DateOfVisit):
StartDate=date(2017,9,1)
EndDate=StartDate+timedelta(days=+6)
Beginning=StartDate
End=EndDate
NumberWeeks=10
for i in range(NumberWeeks):
if(DateOfVisit>=Beginning and DateOfVisit<=End:
print('It worked',i)
return i
else:
print ('It failed', i, Beginning, End)
Beginning=Beginning+timedelta(days=+7)
End=End+timedelta(days=+7)
WhichWeek(VisitDate)
它运行,并返回预期值(print语句只是用来帮助解决问题的)
但是,当我在SPSS中使用Python扩展运行它时:
begin program.
def WhichWeek(DateOfVisit):
from datetime import date, timedelta
StartDate = date(2016,9,1)
EndDate=StartDate+timedelta(days=+6)
Beginning=StartDate
End=EndDate
NumberWeeks=10
for i in range(NumberWeeks):
if DateOfVisit>=Beginning and DateOfVisit<=End:
print('It worked',i)
return i
else:
print ('It failed', i, Beginning, End)
Beginning=Beginning+timedelta(days=+7)
End=End+timedelta(days=+7)
end Program.
SPSSINC TRANS RESULT=Week_Test /FORMULA WhichWeek(VisitDate).
EXECUTE.
FREQUENCIES VARIABLES=Week_Test
/FORMAT=DFREQ
/ORDER=ANALYSIS.
它现在给了我一个错误“这个Forumla引用了一个未定义的变量或者无法计算:不能比较datetime.date到float
VisitDate是我的SPSS数据集中定义的一个变量,由于我在Spyder中没有得到这个错误,我不知道在哪里继续进行故障排除
编辑:我把我的Spyder版本从VisitDate1改为VisitDate以限制混乱。我还应该说,在Spyder中,我使用一个静态日期来测试它是否正确识别了一周(2017-09-10),而不是一个实际的数据集。在SPSS中,我对一个数据集运行它
目前没有回答
相关问题 更多 >
编程相关推荐