【问题标题】:R: Slicing matrix on rows and columns with conditional statementsR:使用条件语句在行和列上切片矩阵
【发布时间】:2017-10-12 20:27:07
【问题描述】:

用矩阵:

C = matrix(c(2, 4, 3, 1, 5, 7), nrow=2, ncol=3, byrow = TRUE)

如何根据行的a必须大于2,列的均值必须在2到5之间的条件选择C的子矩阵。

结果应该是矩阵C的中间列。

我想象两个布尔向量(一个用于列条件,一个用于行条件)可以组合成一个布尔矩阵。然后可以使用该布尔矩阵从C 中选择子矩阵。这是否正确,如果正确,如何实施?

【问题讨论】:

    标签: r matrix


    【解决方案1】:
    C[rowMeans(C) > 2, colMeans(C) > 2 & colMeans(C) < 5, drop = FALSE]
    #     [,1]
    #[1,]    4
    #[2,]    5
    

    【讨论】:

    • 天哪,这很容易。没有意识到您可以将布尔表达式直接放入矩阵索引中......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多