【问题标题】:Are elements in the i'th row of a matrix "<=" the ith element of a vecotor矩阵的第 i 行中的元素是“<=”向量的第 i 个元素吗
【发布时间】:2016-05-04 22:41:51
【问题描述】:

我有一个矩阵 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)

请注意,每一行中的元素都已排序,因此,例如,如果第 i 行中第 4 个元素的 ">" 比较评估为 TRUE,则该行的所有 1:4 元素的评估结果都类似。

与 v1 比较的第 1 到第 3 行的预期结果应计算为 TTTFF,而对于第二行 TTFFFF,因为只有 3 和 11

【问题讨论】:

  • 不是m &lt;= v1吗?
  • @Symbolix - 是的,简单,矩阵按列顺序填充,所以基本比较应该没问题。
  • @thelatemail - 感谢您的澄清 ;) 试图找出 为什么 这是错误的......

标签: r matrix vector comparison


【解决方案1】:

由于向量的长度与矩阵中的行数相同,因此可以在这里进行简单的比较

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

【讨论】:

    猜你喜欢
    • 2016-07-08
    • 1970-01-01
    • 2021-10-17
    • 2020-09-20
    • 2022-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-04
    相关资源
    最近更新 更多