假设你的矩阵“x”和你的向量“y”是:
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)
您可以使用apply
将“x”的每一行与向量“y”进行比较。用于cbind
将该比较的结果作为新列添加到matrix
名为“m”的新列中。值“1”表示TRUE
(或“是”),值“0”表示FALSE
(或“非”)。
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
如果您真的想要“是”和“非”值,我建议您使用 adata.frame
而不是 a,matrix
因为 amatrix
只能包含一种类型的值,而 adata.frame
在每一列中可以有不同类别的数据。