在R上创建一个带条件的矩阵

在R上创建一个带条件的矩阵,r,R,我正在处理R上的一个问题。我正在尝试编写一个函数,用于选择至少两列中值大于0的所有行。(该函数允许选择包含大于0的值的列数) 输入矩阵: Col1 Col2 Col3 Col4 row1 0 0 0 2 row2 2 5 4 0 row3 0 0 8 3 输出矩阵: Col1 Col2 Col3 Col4 row2 2 5 4 0 row3 0 0 8 3 如果有人能帮我?

我正在处理R上的一个问题。我正在尝试编写一个函数,用于选择至少两列中值大于0的所有行。(该函数允许选择包含大于0的值的列数)

输入矩阵:

     Col1 Col2 Col3 Col4
row1  0    0    0    2
row2  2    5    4    0
row3  0    0    8    3
输出矩阵:

     Col1 Col2 Col3 Col4
row2  2    5    4    0
row3  0    0    8    3
如果有人能帮我?谢谢大家!

x0)>=2),]
X <- your_matrix

X[which(rowSums(X > 0) >= 2), ]
对不起,我没有注意到函数的要求。正如Axeman所述,您可以将此方法包装到一个函数中,如下所示:

filter_matrix <- function(
        X, n = 2, na.rm = TRUE
    ){
    stopifnot(is.matrix(X) && is.numeric(X)
    stopifnot(is.numeric(n) && length(n) == 1)
    X[which(rowSums(X > 0, na.rm = na.rm) >= n), ]
    }
filter_矩阵0,na.rm=na.rm)>=n),]
}

So
函数(X,n){X[其中(行和(X>0)>=n),]}
。是否需要
哪个
?如果用户不更改参数,如何在默认情况下设置“n”参数?不,您不需要
哪个
。也不需要将其包装到函数中。但是,您可能希望将
na.rm=TRUE
放在
行和中