我有两个矩阵A和B(都是4x4),代表排名。Group1为1-4级,2组为5-8级.
A: B:
(1 2 3 4)..............(5 6 7 8)
(1 2 3 4)..............(5 6 7 8)
(1 2 3 4)..............(5 6 7 8)
(1 2 3 4)..............(5 6 7 8)然后我有另一个矩阵C (4x8矩阵),它在另一个星座中有1-8 (但)阶:
C:
(8 3 1 4 2 7 5 6)
(5 1 7 3 6 2 8 4)
(7 3 2 1 8 4 6 5)
(4 2 1 6 7 8 5 3)现在,我想在C的方案/序列之后重新排序矩阵A和矩阵B,解决方案应该如下:
A_new: B_new:
(3 1 4 2) (8 7 5 6)
(1 3 2 4) (5 7 6 8)
(3 2 1 4) (7 8 6 5)
(4 2 1 3) (6 7 8 5)我希望有人能给我一个提示,因为在正常的“排序”和“排序”功能中,我没有成功。
发布于 2016-04-07 07:15:04
在C中使用的是每一行1到4的顺序和5到8的顺序。
检查代码:
set.seed(123)
A<-matrix(1:4,nrow = 4,ncol =4,byrow = T)
B<-matrix(5:8,nrow = 4,ncol =4,byrow = T)
C<-matrix(sample(x = 1:8,size = 8),nrow = 4,ncol =8,byrow = T)我将结果存储在不同的矩阵中。
A1<-matrix(nrow = 4,ncol = 4)
B1<-matrix(nrow = 4,ncol = 4)结果
for(i in 1:nrow(C)){
vect<-C[i,]
A1[i,]<-A[i,vect[vect<=ncol(A)]]
B1[i,]<-B[i,(vect[vect>ncol(A)])-ncol(A)]
}发布于 2016-04-07 08:43:24
A<-matrix(c(1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4),4,4,byrow=T) B<-matrix(c(1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4),4,4,byrow=T)
C<-matrix(c(8,3,1,4,2,7,5,6,5,1,7,3,6,2,8,4,7,3,2,1,8,4,6,5,4,2,1,6,7,8,5,3),4,8,byrow=T)
for(i in 1:nrow(C)){
A[i,]<-A[i,C[i,C[i,C[i,]<=ncol(A)]]] B[i,]<-B[i,(C[i,C[i,C[i,]>ncol(A)])-ncol(A)]] }
这是目前为止的代码,我得到了两条错误消息:意外符号:')‘in:“Ai,<-A[i,C[i,C[i,Ci,<=ncol(A)]] Bi,<-B[i,C[i,C[i,Ci,>ncol(A)]]”
没有括号:“超出范围的索引”
谢谢
https://stackoverflow.com/questions/36468662
复制相似问题