如何编写R函数,使接近零的值变为零,其他值保持不变

w1e3prcc  于 2023-01-28  发布在  其他
关注(0)|答案(1)|浏览(177)

我有一个3列40行的数据框。前两列包含从-1到1的值,第三列包含这两列的值之和。因此,我想将第三列中更接近零的值(如0.3、0.2、0.1、-0.1、-0.2、-0.3)更改为零,其余值保持不变。

library(dplyr)
set.seed(2)
D = data.frame(from = runif(40, -1,1), to = runif(40,-1,1)) %>% dplyr::mutate(weight = from + to)

谢谢你的帮助。

dwbf0jvd

dwbf0jvd1#

使用replace,检查abs溶质值是否低于阈值:

thrs = 0.5
transform(D, weight = replace(weight, abs(weight) < thrs, 0))

或者在dplyr框架中:

D %>% 
  mutate(weight = replace(weight, abs(weight) < 0.5, 0))

相关问题