1

我有一个实验的数据,该实验对 59 到 60 赫兹之间的响应进行采样。在运行 18 分钟的整个实验中,无法预测采样率的下降。

每个采样的响应都从 1 到 N(总行数)编号,显示时间的相对流逝,存储在变量“帧”中。我还有一个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
....
4

1 回答 1

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.

有关使用滞后的相关讨论,请参阅在 SPSS 中使用顺序案例处理进行数据管理

于 2013-08-29T17:52:26.360 回答