如何在tidyverse中将murders数据框的rate列从7位小数格式化为2位小数
如何在tidyverse中格式化rate列保留2位小数?
嘿,看起来你已经在tidyverse的管道操作上走得很顺啦!要把rate列格式成保留两位小数,其实很容易,直接在你的管道链里加一步mutate()就行,这里给你几种常用的方法:
基础四舍五入(数值型保留两位小数):用
round()函数,它会把数值四舍五入到指定的小数位数,得到的结果还是数值型,适合后续还要做数值计算的场景:murders %>% mutate(rate = total / population * 100000) %>% # 先计算rate(如果你的数据里还没算的话) select(state, region, rate) %>% filter(rate <= 0.71) %>% mutate(rate = round(rate, digits = 2))强制显示两位小数(字符型):如果需要确保即使是类似
0.7这样的数也显示成0.70,可以用sprintf()把数值转成固定格式的字符串,适合只需要展示结果的场景:murders %>% mutate(rate = total / population * 100000) %>% select(state, region, rate) %>% filter(rate <= 0.71) %>% mutate(rate = sprintf("%.2f", rate))数值型+固定显示格式:如果想保持rate为数值型,同时在输出/查看时固定显示两位小数,可以用
scales包的number()函数(需要先加载包),兼顾计算和展示需求:library(scales) murders %>% mutate(rate = total / population * 100000) %>% select(state, region, rate) %>% filter(rate <= 0.71) %>% mutate(rate = number(rate, accuracy = 0.01))
内容的提问来源于stack exchange,提问作者LennyB51
相关产品推荐
相关产品推荐

