-1

我在R中有一个名为RUNS的列表,RUNS的每个元素都是一个由数字数据组成的矩阵。由于分母四舍五入为零,用于生成矩阵的计算之一返回“Inf”作为值。这导致我现在正在做的一些工作出现问题,我正试图找出一种方法来简单地将 RUNS 中具有“Inf”的元素放在其中的任何位置。我还没有让它工作。我在尝试:

TEST <- subset(RUNS, "Inf" %nin% RUNS)

使用 Hmisc 包中的 %in% 命令,但它似乎没有做我需要的。任何想法将不胜感激。谢谢。

4

3 回答 3

1
lapply(RUNS, function(x) all(is.finite(x)))
[[1]]
[1] FALSE

[[2]]
[1] TRUE

[[3]]
[1] TRUE

> RUNS[ sapply(RUNS, function(x) all(is.finite(x))) ]
[[1]]
     [,1] [,2]
[1,]    1    2
[2,]    1    2
[3,]    1    2

[[2]]
     [,1] [,2]
[1,]    1    3
[2,]    1    3
[3,]    1    3
于 2013-11-01T21:31:22.610 回答
0

尝试这个:

# dummy vector with inf values
x <- c(1,2,3,rep(1/0,4),5,7,8)

# drop inf values
x <- x[!is.infinite(x)]
于 2013-11-01T20:36:22.803 回答
0

尝试

TEST = lapply(RUNS, function(x) subset(x, is.finite(x))
于 2013-11-01T20:44:11.467 回答