如何处理 R 中矩阵中的无限值?

How does one handle infinite values in matrices in R?

我有一个矩阵,我怀疑它有一些无限元素。

我有两个问题:

  1. 是否有类似 sum(is.na) 的等效计数函数,它为我提供了矩阵中无穷大的数量?
  2. 我想计算矩阵的每一行与另一个向量的点积。我如何忽略无限值? sum 函数中的 na.rm = T 函数之类的东西。

谢谢

试试这个,但要确保你的输入数据是 class 矩阵:

set.seed(1)

# make data
n <- 20
m <- 10
M <- matrix(rnorm(n*m), n, m)

# add Infs
M[sample(x = length(M), size = length(M)*0.1)] <- Inf
image(seq(n), seq(m), M, xlab = "rows", ylab = "columns")

# here is the vector that you want to multiply each row with
multVec <- seq(m)

# apply with removal of non-finite values
res <- apply(M, 1, function(x){
  tmp <- x * multVec
  sum(tmp[is.finite(tmp)])
})