这可能是一个简单的问题但是我找不到如何从矢量顺序生成值对,其中每对包括具有两列的值矩阵中的最后值和新值。以下示例
C<-c(1 , 20 , 44 , 62 , 64 , 89 , 91, 100)
矩阵示例
newpairs
[,1] [,2]
[1,] 1 20
[2,] 20 44
[3,] 44 64
[4,] 64 89
[5,] 89 91
[6,] 91 100
因此,当我尝试矩阵时,它不起作用,因为最后一个元素没有用新元素
重复newpairs <- matrix(C, ncol=2, byrow=TRUE)
newpairs
[,1] [,2]
[1,] 1 20
[2,] 44 62
[3,] 64 89
[4,] 91 100
我猜您可以进行子集但是如果C值发生变化,那么您必须更改子集的丢弃或保留。我也尝试过提取某些增量或可以提取每个第n个元素的函数。但是,我想找到一种系统的方法来创建第一个示例矩阵。
欢迎任何帮助
答案 0 :(得分:7)
这符合您想要的输出:
cbind(C[-length(C)], C[-1])
[,1] [,2]
[1,] 1 20
[2,] 20 44
[3,] 44 62
[4,] 62 64
[5,] 64 89
[6,] 89 91
[7,] 91 100
答案 1 :(得分:2)
怎么样:
## define input
C <- c(1 , 20 , 44 , 62 , 64 , 89 , 91, 100)
## replicate all but first and last elements
Crep <- rep(C,c(1,rep(2,length(C)-2),1))
## create matrix
matrix(Crep,ncol=2,byrow=TRUE)