如何修改R代码:对≥1000的数值保留全部整数位而非3位有效数字
修改R函数以适配不同数值的格式化需求
可以通过条件判断+向量化处理修改函数,让它对不同范围的数值应用不同的格式化规则:
sig <- function(x, dig = 3) { # 对绝对值≥1000的数值,截断小数保留全部整数;其余数值保留指定位数有效数字 ifelse(abs(x) >= 1000, trunc(x), signif(x, dig)) }
测试示例
- 输入
sig(21562.34),输出21562 - 输入
sig(123.45),输出123 - 输入
sig(999.99),输出1000 - 输入
sig(-21562.34),输出-21562
代码说明
abs(x) >= 1000:同时覆盖正负数值的判断逻辑trunc(x):直接截断小数部分,保留全部整数(不会进行四舍五入)signif(x, dig):对小数值维持原有的有效数字格式化规则,默认保留3位ifelse:支持向量输入,适配大型数据集的批量处理需求
内容的提问来源于stack exchange,提问作者SharonP
相关产品推荐
相关产品推荐

