wongone 有一矩阵,矩阵中有一些Inf或者NaN等值,我想把这些值所在的行全部赋值为其他值,该如何去做呢? 如以下矩阵 1 2 Inf 3 4 0 Inf 0 Nan 2 3 1 变成(比如将那些值赋值为-1) -1 -1 -1 3 4 0 -1 -1 -1 2 3 1 有没有简单一点的语句,我想了半天,复杂一点的方法是可以实现的.比如用 is.infinite测试有没有Inf,然后将矩阵做行和,将值为0的行保留,其他行赋值为-1,但是这也太麻烦了,请高人指点一二
nan.xiao <br /> x = matrix(c(1, 2, Inf, 3, 4, 0, Inf, 0, NaN, 2, 3, 1), 4, 3, byrow = TRUE)<br /> x[apply(is.nan(x) | is.infinite(x), FUN = any, 1), ] = -1<br /> </p>
doctorjxd 其实可以用 is.finite 的补集,这个和 is.infinite 是不一样的。它包括 Inf、NA、和 NaN. <br /> x = matrix(c(1, 2, Inf, 3, 4, 0, Inf, 0, NaN, 2, 3, 1), 4, 3, byrow = TRUE)<br /> x[apply(!is.finite(me), FUN = any, 1), ] = -1</p> <p> </p>