替换数值范围内的值

Elb*_*Elb 1 r

大家好,这个问题很简单。我怎样才能更换values < 1.5values > -1.5 使用0data.frame?应该是“烟斗”的最佳解决方案吗?

非常感谢!

E.

Kon*_*lph 5

就这么简单:

data[data > -1.5 & data < 1.5] <- 0
Run Code Online (Sandbox Code Playgroud)


Mat*_*rde 5

replace 提供了另一个选择。

replace(DF, DF > -1.5 & DF < 1.5, 0)
Run Code Online (Sandbox Code Playgroud)

在必须替换data.frame列表中存储的多个s的值的情况下,此函数可以简化语法。

# list of data.frames
dframes <- replicate(3, data.frame(a=seq(-2, 2, by=1), b=seq(2, -2, by=-1)), simplify=FALSE)
# perform the replacement across all DFs in the list.
lapply(dframes, function(DF) replace(DF, DF > -1.5 & DF < 1.5, 0))
Run Code Online (Sandbox Code Playgroud)

否则,您将不得不编写类似

lapply(dframes, function(DF) {DF[DF > -1.5 & DF < 1.5] <- 0;DF})
Run Code Online (Sandbox Code Playgroud)