R:如何对列表中的多列矩阵求和?

时间:2016-09-25 18:58:35

标签: r sum lapply

我想在列表中对多列矩阵求和,只显示总和而不显示(计算)输入列(类似于数据框上的former question)。感谢前面的答案,但我努力实现关于矩阵的想法。这是一个例子:

ls <- list(matrix(c(1, 5, 3, 2), ncol=4), matrix(c(NA, 2, 7, 9), ncol=4))
countries <- c("a", "b", "c", "d")
ls <- lapply(ls, "colnames<-", countries)

我的预期结果是:

[[1]]
     c new
[1,] 3   8

[[2]]
     c new
[1,] 7  11

任何想法如何进行此列总结?感谢

1 个答案:

答案 0 :(得分:1)

尝试以下:

calc <- c("a", "b", "d")
keep <- "c"

lapply(ls, function(i){
  cbind(i[, keep, drop = FALSE],
        new = rowSums(i[, calc, drop = FALSE], na.rm = TRUE))
  })