在R上创建一个带条件的矩阵
我正在处理R上的一个问题。我正在尝试编写一个函数,用于选择至少两列中值大于0的所有行。(该函数允许选择包含大于0的值的列数) 输入矩阵:在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 如果有人能帮我?
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
放在行和中