如何基于R中的多个条件将矩阵的值替换为零

时间:2018-07-18 08:08:51

标签: r

我有一个矩阵列表,对于所有这些矩阵,我想根据不同的条件将特定值替换为0

这是我在此网站Please see this link上找到的答案。

但是,只需要一个条件。

这是我的尝试(我有三个条件)

x <- c(4,5,6,-0.2,0.1,3,4,-0.2,-0.1,1)
y <- c(5,7,8,1,-0.1,-0.1,0.1,1,2,1)
y <- matrix(y,5,5)
x <- matrix(x,5,5)
x[x< 0.1] <- 0
x[x<-0.1] <- 0
x[x==1] <- 0
y[y< 0.1] <- 0
y[y<-0.1] <- 0
y[y==1] <- 0

z <- list(x,y)

有什么帮助吗?

1 个答案:

答案 0 :(得分:0)

可以这样解决:

l <- list(x,y)

fun1 <- function(m) {
    m[m< 0.1 | m< -0.1 | x==1] <-0
    return(m)
}

lapply(l,fun1)

请注意:

请确保您在< -0.1中有一个空格,否则,它是一个赋值(<-),并且在那里没有意义。