在R中将变量转换为timeseries数据

在R中将变量转换为timeseries数据,r,time,R,Time,我在r中有一个向量 a = log10(1:1000) + rnorm(1000) 我想根据给定的参数转换此数据集 n = 10 函数表示 b = function(a,x){...........................} d = b(a,x) 以便将我的数据转换为 d = a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 ...

我在r中有一个向量

a = log10(1:1000) + rnorm(1000)
我想根据给定的参数转换此数据集

n = 10
函数表示

b = function(a,x){...........................}

d = b(a,x)
以便将我的数据转换为

d = 
a1   a2   a3   a4   a5   a6   a7   a8   a9   a10
a2   a3   a4   a5   a6   a7   a8   a9   a10  a11 
..................................
.................................
a990 a991 a992 a993 a994 a995 a996 a997 a998 a999
a991 a992 a993 a994 a995 a996 a997 a998 a999 a1000
试试这个:

b= function(a,n){
    lst=sapply(1:(length(a)-n),function(t,a,n){a[t:(n+t-1)]},a,n,simplify = F)
    Reduce(function(x,y){rbind(x,y)},lst)
    }
试试这个:

b= function(a,n){
    lst=sapply(1:(length(a)-n),function(t,a,n){a[t:(n+t-1)]},a,n,simplify = F)
    Reduce(function(x,y){rbind(x,y)},lst)
    }

使用
?嵌入
稍微简单一点:

embed(a,n)[,n:1]
它没有相同的名称,并返回一个矩阵,但在其他方面与较长的结果相同:

identical( embed(a,n)[,n:1], unname(as.matrix(b)) )
#[1] TRUE

使用
?嵌入
稍微简单一点:

embed(a,n)[,n:1]
它没有相同的名称,并返回一个矩阵,但在其他方面与较长的结果相同:

identical( embed(a,n)[,n:1], unname(as.matrix(b)) )
#[1] TRUE

是否希望输出为
矩阵
?在ans中找到粘贴在下面的解决方案是否希望输出为
矩阵
?在ans中找到粘贴在下面的解决方案