我有许多具有结构的xts对象:
* Resp_1
...
2014-11-24 18:45:41 " 4.98683210"
2014-11-24 18:45:52 " 4.94921172"
2014-11-24 18:46:02 " 4.95605396"
2014-11-24 18:46:12 " 4.95352998"
2014-11-24 18:46:23 " 4.99771640"
2014-11-24 18:46:33 " 4.98459552"
2014-11-24 18:46:44 " 5.00530512"
2014-11-24 18:46:54 " 4.98655576"
2014-11-24 18:47:04 " 4.98136715"
2014-11-24 18:47:15 " 5.01771098"
...
测量值有时间戳的地方。
由于实验进行的方式,感兴趣的值包含一个需要减去的背景水平。使得这更困难的是背景电平不是恒定的,并且不可能使用单一的校正值。
http://i.imgur.com/GBD8clN.jpg?1
因此,在实验前后测量了背景水平(在虚线红线末端的图片上看到)。
现在我想从测量值中减去背景电平。我认为这样做的方法是在前后背景级别之间创建一个内插的背景电平向量,然后从Resp_1值中减去这个向量。
目前,我已经从图表中手动确定了包含前后背景级别的时间段,并计算了两者的平均值。例如:
backg_before<-mean(as.numeric(df$Resp_1["2014-11-24 18:45:40/2014-11-24 18:47:20"]))
backg_after<-mean(as.numeric(df$Resp_1["2014-11-25 09:33:00/2014-11-25 09:36:00"]))
所以我知道背景水平之前和之后的平均值,但我不知道如何在这两个水平之间插入向量。
向量应该经过所选时间段前后的中间部分。例如,背景级别之前的平均值为4.98,其时间线位置应在18:46:28左右。由于不存在这样的时间戳,它也可能是最近的现存时间戳(18:46:23或18:46:33)。
我不知道如何找到xts时间序列索引的中间。有办法吗?
以及如何构建所需的向量?
发布于 2014-12-03 11:54:53
可以通过从现有的xts索引中添加UNIX时间戳格式来解决问题。这样就很容易计算出时间序列的中间值作为第二次计数的平均值。
UNIX秒也使得构建向量变得容易,因为简单的代数可以用来找到所需的斜率和y截距。
https://stackoverflow.com/questions/27185917
复制相似问题