r - 数字矩阵中每行的数字总和

标签 r matrix sum

有一个矩阵:

        [,1] [,2] [,3] [,4] [,5] [,6]
   [1,]   11   14   17   20   23   26
   [2,]   12   15   18   21   24   27
   [3,]   13   16   19   22   25   28

我只想获取每行数字总和在 2 之间的行 值。

每行的数字总和:

   [1] 30
   [2] 38
   [3] 42

因此,如果我只想获取数字总和在 3140 之间的行,那么 仅必须返回值为 38 的行 2

最佳答案

我们能做到

 i1 <-  apply(m1, 1, function(x) {
         v1 <- sum(unlist(lapply(strsplit(as.character(x), ""), as.numeric)))
         v1 > 31 & v1 < 40})

m1[i1, , drop = FALSE]
#   [,1] [,2] [,3] [,4] [,5] [,6]
#[1,]   12   15   18   21   24   27
<小时/>

或者

i1 <- sapply(strsplit(do.call(paste0, as.data.frame(m1)), ""), 
               function(x) sum(as.integer(x)))
m1[i1, , drop = FALSE]
<小时/>

或者我们可以做

f1 <-  Vectorize(function(x) sum(floor(x / 10^(0:(nchar(x) - 1))) %% 10))
i1 <-  rowSums(t(apply(m1, 1, f1))) %in% 31:40
m1[i1, , drop = FALSE]

数据

m1 <- matrix(11:28, nrow = 3)

关于r - 数字矩阵中每行的数字总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44327824/

相关文章:

两个不重叠的 `data.table` s 的滚动连接

r - 展开数据框

r - 将大型 XTS 对象转换为数组以计算特征值和特征向量

arrays - 最大数量数组中总和小于或等于 k ​​的元素

c# - Linq 对象分组和求和

php - MySQL 使用多个 WHERE 子句选择 AVG

r - 使用 Rscript 通过 Bash 脚本参数查询 data.frame

r - CSV 文件读取问题

C++矩阵类: overloading assignment operator

matrix - 非正定矩阵的 Eigen 共轭梯度