【问题标题】:Select columns which contain a certain number in matrix选择矩阵中包含特​​定数字的列
【发布时间】:2018-06-28 22:27:31
【问题描述】:

我有一个矩阵A:

1   0   2
1   3   1

我想选择所有包含数字 1 的列。我想要的输出:

1   2
1   1

【问题讨论】:

  • 试试Filter(function(x) any(x ==1), A)
  • @d.b 感谢您的帮助。我认为我们只需要在左括号后添加一个逗号即可返回矩阵
  • @TuanDo 如果你有一个矩阵,那么是的,你需要在 d.b 的答案中使用额外的逗号,而 akrun 的答案根本不起作用。如果您有一个数据框(正如您的问题所暗示的那样,“我有一个 df...”),那么 d.b 和 akrun 的代码都可以正常工作。
  • @Gregor 实际上我有一个矩阵,而不是 df。对不起这个错误。我在问题中修复了它。

标签: r matrix filtering


【解决方案1】:

数据

A = matrix(c(1, 1, 0, 3, 2, 1), nrow = 2)
A
#     [,1] [,2] [,3]
#[1,]    1    0    2
#[2,]    1    3    1

1

A[,colSums(A == 1, na.rm = TRUE) > 0, drop = FALSE]
#     [,1] [,2]
#[1,]    1    2
#[2,]    1    1

2

A[,apply(A, 2, function(x) any(x == 1)), drop = FALSE]
#     [,1] [,2]
#[1,]    1    2
#[2,]    1    1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-23
    • 2021-12-01
    • 1970-01-01
    • 2012-03-10
    • 2015-10-17
    相关资源
    最近更新 更多