r - R中矩阵中具有可变列数的减法

标签 r

我有一个我认为应该是一个简单的问题,但是我似乎无法找出解决该问题的好方法。我有一个在循环内创建的矩阵,并且矩阵中的列数有所不同。我想创建一个 vector ,其中 vector 中的每个项目的计算方式如下(x是矩阵中的列数):

vec[1] = mat[1,1] - mat[1,2] - mat[1,3] - mat[1,4] -...- mat[1,x]

vec[2] = mat[2,1] - mat[2,2] - mat[2,3] - mat[2,4] -...- mat[2,x]

仅用两列就可以轻松完成此操作,我想出了如何用3列进行操作,但是超过3列被卡住了。这是到目前为止我所拥有的一个例子:
 # Create 4 column matrix
 mat <- matrix(c(rep(1, 10),
                 rep(2, 10),
                 rep(3, 10),
                 rep(4, 10)), nc = 4)

 #Create 2 column matrix and calculate: column1 - column2
 mat.2col <- mat[,1:2]
 sapply(1:nrow(mat.2col), function(x) 
   diff(rev(c(mat.2col[x,1], mat.2col[x,2])))
 )

 # Create 3 column matrix and calculate: column1 - column2 - column3
 mat.3col <- mat[,1:3]
 sapply(1:nrow(mat.3col), function(x) 
   diff(rev(c(diff(rev(mat.3col[x,1:(ncol(mat.3col)-1)])),mat.3col[x,ncol(mat.3col)])))
 )

当矩阵中的列数变化时,如何对矩阵行中的每个项目相减有何建议?同样,减法的顺序(必须从第1列中减去第2列,依此类推)。

最佳答案

我认为这是您追求的目标:

mat[,1] - rowSums(mat[,-1])

关于r - R中矩阵中具有可变列数的减法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33638127/

相关文章:

r - 具有高级绘图功能的多个绘图,尤其是 plot.rqs()

r - 如何在ggplot直方图中定义填充颜色?

R:在 nlme 函数中使用因子变量

r - Rgooglemaps不在 map 上绘制数据

R Shiny - 动态添加 tabPanel 到 tabsetPanel(使用 renderUI)

r - 在 R 中截断但不舍入

r - 如何在 dabestr 中创建用于绘图的循环?

r - 如何更改 ggplot2 条形图中的堆叠顺序?

r - 翻转图例的顺序而不改变情节中的顺序

r - 在 R data.table 中使用双变量过滤因子变量