如果一个矩阵中的值存在于另一个矩阵中,如何在R中添加列
我有两个矩阵x和y:如果一个矩阵中的值存在于另一个矩阵中,如何在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
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