使用R中的M维向量过滤NxM维矩阵

时间:2018-03-21 00:02:06

标签: r filtering apply

使用R,我试图用 M 维向量过滤 N x M 维矩阵的行,替换为< em> NA 矩阵每行中的值小于向量中索引的相应值。

Intuition告诉我,这应该使用apply()的某些变体来迭代矩阵的每一行上的过滤器,但我不确定如何在实践中对其进行编码。

我通常不会将R用于此类任务,但是一位同事要求使用此语言编写代码。谢谢

1 个答案:

答案 0 :(得分:0)

如果您想要使用apply的答案,以下代码可能有所帮助:

m <- matrix(c(NA, 3, 3, 4, 2, NA, 4, 3, 5, 6, NA, NA), nrow = 4, ncol = 3)
apply(m, 1:2, function(x) ifelse(is.na(x), -1, x))

应用遍历每个单元格并搜索NA。如果它检测到NA,则将其替换为-1(或者您可以使用您选择的任何其他值)。否则,它保留原始值。