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

时间:2015-07-04 15:34:46

标签: 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 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),])

1 个答案:

答案 0 :(得分:3)

怎么样

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

向量化减​​法运算符应该处理所有事情。

相关问题