gpt4 book ai didi

python - 如何在 SPSS 中将周名称变量创建为等于一周第一天的字符串(例如星期日的日期)

转载 作者:行者123 更新时间:2023-12-01 00:41:16 25 4
gpt4 key购买 nike

假设我有一个名为“date”的日期变量。我需要获取一个“周”变量,它不显示周数,而是显示周名称,即实际上一周的第一天。例如,当前周值将是“2019-Jul-28”,我需要整个星期的该值。下周将显示“2019-08-04”,依此类推。

我的解决方案使用 python,但我在 SPSS 中收到警告消息,并且没有获得任何新的变量值:

STRING day (A10).
STRING monthday monthnumber (A2).
DO IF (XDATE.MDAY(date) < 10).
COMPUTE monthday =
CONCAT('0',STRING(XDATE.MDAY(date),F1)).
ELSE.
COMPUTE monthday =
STRING(XDATE.MDAY(date),F2).
END IF.
EXECUTE.

DO IF (XDATE.MONTH(date) < 10).
COMPUTE monthnumber =
CONCAT('0',STRING(XDATE.MONTH(date),F1)).
ELSE.
COMPUTE monthnumber =
STRING(XDATE.MONTH(date),F2).
END IF.
EXECUTE.

COMPUTE day =
CONCAT(monthday,'/',monthnumber,'/',STRING(XDATE.YEAR(date),F4)).
EXECUTE.

STRING Week (A11).

begin program.
from datetime import datetime, timedelta

def weekname(day):
dt = datetime.strptime(day, '%d/%m/%Y')
week = dt - timedelta(days=dt.weekday())
return week.strftime('%Y/%b/%d')
end program.

SPSSINC TRANS result = week
/FORMULA "weekname(day)".
EXECUTE.

我收到的警告如下:警告变量名称重复。

但主要问题是 Week 变量中没有值。

有人可以帮忙吗?

非常感谢!!!

最佳答案

这是您的解决方案的简短版本:

STRING  weekname(A11).  
COMPUTE weekname=STRING(datesum(date, -(xdate.wkday(date) - 1), 'days'),DATE11).

关于python - 如何在 SPSS 中将周名称变量创建为等于一周第一天的字符串(例如星期日的日期),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57329451/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com