SPSS:重新编码时间以使采样率明确

时间:2013-08-29 00:57:04

标签: spss

我有一个实验数据,它采样响应在59到60赫兹之间。没有办法预测整个实验中采样率下降18分钟。

每个采样的响应从1到N(总行数)编号,显示相对的时间流逝,存储在变量“frame”中。我还有一个unix时间戳,标记存储在'unixtime'中的绝对时间。但unixtime以整数和整数报告。不是分数单位。例如:

  • 1376925380可重复59次;
  • 1376925381可以在数据文件中重复60次。

我想创建一个新变量,用于跟踪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
....

1 个答案:

答案 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