a,b是两个多行两列的矩阵,r 语言来判断b矩阵中每行的数字是否在a中,如果是就取出存入一个新的矩阵中
时间: 2024-02-02 07:03:56 浏览: 15
可以使用 `apply()` 函数结合条件判断来实现这个功能。
首先,我们可以使用 `apply()` 函数和 `any()` 函数来判断矩阵 `b` 中每行的数字是否在矩阵 `a` 中。具体来说,我们可以使用以下代码:
```R
in_a <- apply(b, 1, function(x) any(apply(a, 1, function(y) all(y == x))))
```
这里,`apply(b, 1, ...)` 表示对矩阵 `b` 每行进行操作,`function(x) ...` 是对每行执行的函数。在这个函数中,我们使用了 `apply(a, 1, ...)` 来对矩阵 `a` 每行进行操作,`function(y) all(y == x)` 判断两个行向量是否完全相等,`any()` 函数用于判断矩阵 `b` 中每行是否有任意一个数字在矩阵 `a` 中出现过。
接下来,我们可以使用 `b[in_a, ]` 来取出矩阵 `b` 中满足条件的行向量,存入一个新的矩阵中。具体来说,我们可以使用以下代码:
```R
result <- b[in_a, ]
```
这里,`in_a` 是一个逻辑向量,表示矩阵 `b` 中每行是否有数字在矩阵 `a` 中出现过。`b[in_a, ]` 表示取出矩阵 `b` 中满足条件的行向量,存入一个新的矩阵中。最终的结果存储在变量 `result` 中。