R 选择矩阵中包含特定数字的列

R 选择矩阵中包含特定数字的列,r,matrix,filtering,R,Matrix,Filtering,我有一个矩阵a: 1 0 2 1 3 1 我想选择包含数字1的所有列。我的期望输出: 1 2 1 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] #

我有一个矩阵
a

1   0   2
1   3   1
我想选择包含数字1的所有列。我的期望输出:

1   2
1   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
数据

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

尝试
过滤器(函数(x)any(x==1),A)
@d.b谢谢您的帮助。我想我们只需要在开括号后面加一个逗号就可以返回matrix@TuanDo如果你有一个矩阵,那么是的,你需要在d.b的答案中多加一个逗号,而akrun的答案根本不起作用。如果您有一个数据帧(正如您的问题“我有一个df…”),那么d.b和akrun的代码都可以正常工作。@Gregor实际上我有一个矩阵,而不是df。对不起,弄错了。我在问题中修复了它。请尝试
过滤器(函数(x)any(x==1),A)
@d.b谢谢您的帮助。我想我们只需要在开括号后面加一个逗号就可以返回matrix@TuanDo如果你有一个矩阵,那么是的,你需要在d.b的答案中多加一个逗号,而akrun的答案根本不起作用。如果您有一个数据帧(正如您的问题“我有一个df…”),那么d.b和akrun的代码都可以正常工作。@Gregor实际上我有一个矩阵,而不是df。对不起,弄错了。我在问题中修正了它。