如果一个矩阵中的值存在于另一个矩阵中,如何在R中添加列

如果一个矩阵中的值存在于另一个矩阵中,如何在R中添加列,r,matrix,R,Matrix,我有两个矩阵x和y: x 1 4 7 10 2 5 8 11 3 6 9 12 y 1 4 3 6 现在我想检查一下,如果x的第一列中的值存在于y中,那么它应该在x中再添加一列,并在该列中添加yes,如果没有,则在该列中添加non,并存储在名为m的第三个矩阵中 基本上我应该得到这样的答案: m 1 4 7 10 yes 2 5 8 11 non 3 6 9 12 ye

我有两个矩阵x和y:

x
  1    4    7   10
  2    5    8   11
  3    6    9   12

y
1
4
3
6
现在我想检查一下,如果
x
的第一列中的值存在于
y
中,那么它应该在
x
中再添加一列,并在该列中添加
yes
,如果没有,则在该列中添加
non
,并存储在名为m的第三个矩阵中

基本上我应该得到这样的答案:

m
1    4    7   10    yes
2    5    8   11    non
3    6    9   12    yes
假设矩阵“x”和向量“y”为:


如果您真的想要“是”和“非”值,我建议您使用
data.frame
而不是
matrix
,因为
matrix
只能包含一种类型的值,而
data.frame
可以在每列中包含不同的数据类。

欢迎使用堆栈溢出!看起来你想让我们为你写些代码。虽然许多用户愿意为陷入困境的程序员编写代码,但他们通常只在海报已经试图自己解决问题时才提供帮助。演示这项工作的一个好方法是,包括您迄今为止编写的代码、示例输入(如果有)、预期输出和实际获得的输出(控制台输出、堆栈跟踪、编译器错误——任何适用的)。你提供的细节越多,你可能收到的答案就越多
x <- structure(c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12), .Dim = 3:4)
x
#      [,1] [,2] [,3] [,4]
# [1,]    1    4    7   10
# [2,]    2    5    8   11
# [3,]    3    6    9   12
y <- c(1, 4, 3, 6)
m <- cbind(x, apply(x, 1, function(z) any(z %in% y)))
m
#      [,1] [,2] [,3] [,4] [,5]
# [1,]    1    4    7   10    1
# [2,]    2    5    8   11    0
# [3,]    3    6    9   12    1