-4

假设从连续时间过程中观察到 X(1), X(2), ..., X(N)。如何使用 R 离散化网格 {0,1/N,...,(N-1)/N,1} 上的这些数据的时间?

我真的很感激任何帮助。谢谢。

4

1 回答 1

1

这将是在连续时间内做到这一点的方法:

x <- cumsum(abs(rnorm(20)))
n <- (x-min(x))/diff(range(x))
> n
 [1] 0.00000000 0.01884929 0.02874295 0.07230612 0.11253305 0.19770821 0.26356939
 [8] 0.33310811 0.36687944 0.47041629 0.53331128 0.61724640 0.72534086 0.74782335
[15] 0.79829820 0.83023417 0.85336221 0.85528100 0.90023497 1.00000000

要获得类似于您可能从 cut 或 Hmisc::cut2 获得的数值向量,您可以使用 findInterval:

> findInterval(n, seq(0,1,length=length(n) )/length(n) )
 [1]  1  8 11 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20

并且“归一化为 [0,1] 很简单,甚至是微不足道的;

> findInterval(n, seq(0,1,length=length(n) ))/length(n)
 [1] 0.05 0.05 0.05 0.10 0.15 0.20 0.30 0.35 0.35 0.45 0.55 0.60 0.70 0.75 0.80 0.80 0.85
[18] 0.85 0.90 1.00
于 2013-10-18T16:44:01.753 回答