我有一个实验数据,它采样响应在59到60赫兹之间。没有办法预测整个实验中采样率下降18分钟。
每个采样的响应从1到N(总行数)编号,显示相对的时间流逝,存储在变量“frame”中。我还有一个unix时间戳,标记存储在'unixtime'中的绝对时间。但unixtime以整数和整数报告。不是分数单位。例如:
我想创建一个新变量,用于跟踪SPSS中每个给定的unixtime标记的1到60或1到59(视情况而定)的每个连续帧(或采样响应)。请参阅下面所需的重新安排。任何有适当的SPSS语法的帮助表示赞赏!
unixtime newframe
1376925380 1
1376925380 2
1376925380 3
1376925380 4
1376925380 5
1376925380 6
....
1376925380 58
1376925380 59
1376925381 1
1376925381 2
1376925381 3
1376925381 4
.... ....
1376925381 60
1376925382 1
1376925382 2
....
答案 0 :(得分:0)
如果我理解正确,您可以使用LAG
找出时间戳之间的计数器。示例如下。
*fake data.
set seed 10.
input program.
loop #i = 1 to 100.
loop #j = 1 to TRUNC(RV.UNIFORM(59,61)).
compute unixtime = 1376925379 + #i.
end case.
end loop.
end loop.
end file.
end input program.
*Using lag to calculate newframe variable.
DO IF ($casenum = 1) OR (unixtime <> lag(unixtime)).
compute newframe = 1.
ELSE.
compute newframe = lag(newframe) + 1.
END IF.
exe.
请参阅有关使用滞后的相关讨论,Using sequential case processing for data management in SPSS。