SPSS 中 TIME 变量值的问题

Problem with TIME variable values in SPSS

提问人:TotorosForest 提问时间:2/24/2023 更新时间:2/24/2023 访问量:67

问:

我需要您的建议,如何将我的时间变量(Time_A,字符串格式)转换为数字格式。 输入的值如下:hmmhhmm

请给出建议,如何解决这个问题。 问候。

当我在 SPSS 中使用时间和日期函数时,hhmm 值转换良好,但 hmm 值没有任何反应。

变量 time spss

评论


答:

1赞 eli-k 2/24/2023 #1

问题是 SPSS 期望前两个字符表示小时,当小时小于 10 时,只有一个字符。解决方案是添加缺少的字符,在这些情况下应为“0”。因此,在运行日期时间转换之前,请执行以下操作:

compute Time_A=char.lpad(Time_A, 4, "0").

这会将您的 3 位字符串转换为以“0”开头的 4 位字符串。

评论

0赞 TotorosForest 2/24/2023
谢谢。效果非常好。然而,我现在在同一个变量上遇到了另一个问题。值 9999 - 表示缺少 hh 和 mm,因此它应该是缺少值。值 hh99,表示我知道小时但不知道分钟。当您使用提供的代码时,它会将 HH99 值编码为缺失。但是,我需要将它们编码为 hh00。如何实现这一目标?非常感谢您的回答。
1赞 eli-k 2/24/2023
我也可以帮忙解决这个问题,但请将这个问题作为一个新问题发布,这样我们就可以将当前的帖子和答案集中在一个明确的问题上。
1赞 eli-k 2/24/2023
另请参阅我对上面答案的编辑,更改为更新的答案lpadchar.lpad
0赞 TotorosForest 2/24/2023
我已经这样做了,谢谢你的建议。stackoverflow.com/questions/75557054/......
1赞 Anonymoose 2/24/2023 #2

@eli-k已经很好地回答了这个问题。

另一种解决方案是:

compute Time_A_num = NUMBER(RIGHT("0" + Time_A, 4), F4).

因为它以更少的步骤达到相同的结果。它还会创建一个新变量,从而避免修改原始数据,并允许在必要时与原始变量进行比较。

评论

0赞 eli-k 2/24/2023
你是对的,这可能会更短,但请注意,OP 需要转换为时间变量而不是数字。另请注意,这在 SPSS 语法中不起作用 - 您需要改用。"text1"+"text1"concat("text1","text2")