R 将行之间的差异输入空矩阵

R 将行之间的差异输入空矩阵,r,matrix,apply,R,Matrix,Apply,我感兴趣的是一个简短的方法来做这件事。基本上,我有一个40*1000的矩阵,我想取每20行之间的差值(例如diff(m1[c(21,1),]),并将其存储到一个空的20*1000矩阵中。下面是长版本: m1.diff<-matrix(NA, nrow=nrow(m1)/2, ncol=ncol(m1)) # empty matrix with dimensions m1.diff[1,]<-diff(m1[c(21,1),]) # row 21 minus row 1 for all

我感兴趣的是一个简短的方法来做这件事。基本上,我有一个40*1000的矩阵,我想取每20行之间的差值(例如diff(m1[c(21,1),]),并将其存储到一个空的20*1000矩阵中。下面是长版本:

m1.diff<-matrix(NA, nrow=nrow(m1)/2, ncol=ncol(m1)) # empty matrix with dimensions
m1.diff[1,]<-diff(m1[c(21,1),]) # row 21 minus row 1 for all 1000 columns
m1.diff[2,]<-diff(m1[c(22,2),]) # row 22 minus row 2 for all 1000 columns
m1.diff[3,]<-diff(m1[c(23,3),])
m1.diff[4,]<-diff(m1[c(24,4),])
m1.diff[5,]<-diff(m1[c(25,5),])
m1.diff[6,]<-diff(m1[c(26,6),])
m1.diff[7,]<-diff(m1[c(27,7),])
m1.diff[8,]<-diff(m1[c(28,8),])
m1.diff[9,]<-diff(m1[c(29,9),])
m1.diff[10,]<-diff(m1[c(30,10),])
m1.diff[11,]<-diff(m1[c(31,11),])
m1.diff[12,]<-diff(m1[c(32,12),])
m1.diff[13,]<-diff(m1[c(33,13),])
m1.diff[14,]<-diff(m1[c(34,14),])
m1.diff[15,]<-diff(m1[c(35,15),])
m1.diff[16,]<-diff(m1[c(36,16),])
m1.diff[17,]<-diff(m1[c(37,17),])
m1.diff[18,]<-diff(m1[c(38,18),])
m1.diff[19,]<-diff(m1[c(39,19),])
m1.diff[20,]<-diff(m1[c(40,20),])
m1.diff怎么样

m1.diff <- m1[1:20, ]- m1[21:40, ]
m1.diff怎么样

m1.diff <- m1[1:20, ]- m1[21:40, ]
m1.diff怎么样

m1.diff <- m1[1:20, ]- m1[21:40, ]
m1.diff怎么样

m1.diff <- m1[1:20, ]- m1[21:40, ]
m1.diff