如何编写R函数将数据框中接近零的值置零并保留其余值
解决方案
你可以用dplyr的mutate()配合条件判断函数实现需求,以下是两种简洁的实现方式:
方法1:使用case_when()(逻辑清晰,适配多场景)
library(dplyr) set.seed(2) D = data.frame(from = runif(40, -1,1), to = runif(40,-1,1)) %>% mutate(weight = from + to) %>% mutate(weight = case_when( abs(weight) <= 0.3 ~ 0, TRUE ~ weight ))
方法2:使用ifelse()(单一条件下更简洁)
library(dplyr) set.seed(2) D = data.frame(from = runif(40, -1,1), to = runif(40,-1,1)) %>% mutate(weight = from + to) %>% mutate(weight = ifelse(abs(weight) <= 0.3, 0, weight))
关键说明
abs(weight) <= 0.3用于判断weight是否处于-0.3到0.3的区间内(包含边界值)- 满足条件时将
weight置为0,不满足则保留原始数值
内容的提问来源于stack exchange,提问作者adR
相关产品推荐
相关产品推荐

