矩阵的第i行中的元素是“< =”vecotor的第i个元素

时间:2016-05-04 22:41:51

标签: r matrix vector comparison

我有一个矩阵m和一个向量v1。我想将每行的元素与向量v1的对应元素进行比较,以查看是否为< =那个数字。我试过了:

apply(m,1,function(i) i <= v1)

但最终将每行的元素与整个v1向量进行比较,这不是我想要的。应将整行与v1的1个元素与v1的一个元素进行比较。

set.seed(20)
matrix(sort(sample(50,25)),nrow=5)
v1 <- c(16,11,38,41,29)

请注意每行中的元素已排序,因此如果“&gt;”比较第i行中的第4个元素,例如求值为TRUE,该行的所有元素1:4将进行类似的评估。

第1到第3行与v1比较的期望结果应该评估为TTTFF,对于第二行TTFFFF,因为只有3和11是&lt; = 11,第3行结果为TTTTF。

1 个答案:

答案 0 :(得分:3)

由于矢量的长度与矩阵中的行数相同,因此可以使用简单的比较

set.seed(20)
m <- matrix(sort(sample(50,25)),nrow=5)
v1 <- c(16,11,38,41,29)

m <= v1


#      [,1] [,2]  [,3]  [,4]  [,5]
# [1,] TRUE TRUE  TRUE FALSE FALSE
# [2,] TRUE TRUE FALSE FALSE FALSE
# [3,] TRUE TRUE  TRUE  TRUE FALSE
# [4,] TRUE TRUE  TRUE  TRUE FALSE
# [5,] TRUE TRUE  TRUE FALSE FALSE