首页 > 解决方案 > 如何使用 which 函数来确定恰好包含两次数字 1 的行?

问题描述

使用该sample.int函数创建M从 {1, 2, ..., 10} 中选择的随机整数的 6x10 矩阵,我想知道如何使用 which 函数来确定恰好包含 2 个数字 1 的行.

M <- matrix(sample.int(10, size=6*10, replace=TRUE), nrow = 6, ncol = 10)

我要求答案只有一行 R 代码(当然,您可以在 1 行中调用多个函数!)。

我试过了length(which(M == 1))。这计算了与值 1 匹配的元素的数量。我的第二次尝试是使用嵌套for循环来解决问题,但我无法将解决方案减少到一行。我不知道是否有可以简化事情的 API 函数调用。

标签: rmatrix

解决方案


我们可能会使用

which(rowSums(M == 1) == 2)

M == 1给出一个TRUE其中M包含 1 的逻辑矩阵,然后rowSums给出每行中 1 的个数,并which给出结果.


推荐阅读