R 数据四舍五入函数教程
在实践中,数字并不总是像它们在理论上那样好理解,因为实际产生的数据往往小数较多。因此通常有必要对数字进行四舍五入,以使它们更具可读性。 本文介绍 R 提供的几个类似功能函数,进行对比学习。
数据四舍五入
两个数据相除结果可能包括很多小数,一般需要进行四舍五入。四舍五入可以有多种方式实现,大多数语言都类似函数,R也一样。你可以向上或向下四舍五入,也可以四舍五入到最接近的整数或预定的数字。因此需要几个不同函数实现。
round 函数
语法如下,number是需要四舍五入的数字,digits是保留小数位数。请示例:
# round(number,digits)round(1234.56789,3)
# [1] 1234.568
round(1234.56789,0)
# [1] 1235
round(1234.56789,-3)
# [1] 1000
digit为正数会影响小数点后面数,负数则影响小数点前面的数。
signif 函数
语法如下,digits表示整个数据保留的位数:
# signif(number,digits)
signif(1234.566789,4)
# [1] 1235
signif(1234.566789,7)
# [1] 1234.567
signif(1234.566789,1)
# [1] 1000
signif函数取整到给定的数字位数。round和signif函数都使用标准的舍入约定。
floor 函数
floor四舍五入至到小于它的最近整数:
# floor in r example
floor(3.14159)
# [1] 3
floor(-3.14159)
# [1] -4
我们看到floor函数总是向下取最近的整数。
ceiling 函数
ceiling函数四舍五入至大于它的最近整数:
# ceiling in R example
ceiling(3.14159)
# [1] 4
ceiling(-3.14159)
# [1] -3
ceiling函数总是向上取最近整数。
trunc 函数
Tranc函数仅保留整数部分,直接舍去小数。
#Trunc in R example
trunc(3.14159)
# [1] 3
trunc(-3.14159)
# [1] -3
其他方案
四舍五入函数应用较多,因为大多数函数不能产生简洁好懂的结果。R的舍入函数不仅处理单个数字,它们还可以舍入整个向量数据。甚至可以处理整个R数据框。舍入一个完整的R数据帧的主要限制是舍入函数只能处理数值。这个问题的解决方案是首先处理数值列,将它们四舍五入,然后再使用cbind函数进行绑定。
还可以使用print函数:
# options(digits = 2)
mydf <- data.frame(January = c(0.02345, 0.05432), February = c(0.03456, 0.06543), March = c(0.04567, 0.07654), non_numeric = c("abcdefgh", "ijklmno"))
mydf
# January February March non_numeric
# 1 0.02345 0.03456 0.04567 abcdefgh
# 2 0.05432 0.06543 0.07654 ijklmnoprint(mydf, digits = 2)
# January February March non_numeric
# 1 0.023 0.035 0.046 abcdefgh
# 2 0.054 0.065 0.077 ijklmno
对于数据框中包含字符串列,我们可以自己定义函数实现:
round_df <- function(x, digits) {# round all numeric variables# x: data frame # digits: number of digits to roundnumeric_columns <- sapply(x, mode) == 'numeric'x[numeric_columns] <- round(x[numeric_columns], digits)x
}round_df(data, 3)
R 数据四舍五入函数教程相关推荐
- 四舍五入函数round_如何在R中使用round()将数字四舍五入
四舍五入函数round Rounding off the numbers can be achieved with round() in R. Round is one of the best way ...
- R语言rev函数对数据对象(向量、dataframe通过行或者列)反序实战
R语言rev函数对数据对象(向量.dataframe通过行或者列)反序实战 目录 R语言rev函数对数据对象(向量.dataframe通过行或者列)反序实战
- R语言用户自定义函数的语法结构、编写自定义统计值计算函数(使用ifelse结构计算均值和标准差等)、编写自定义日期格式化(format)函数(switch函数使用不同分枝格式化日期数据)、应用自定函数
R语言用户自定义函数的语法结构.编写自定义统计值计算函数(使用ifelse结构计算均值和标准差等).编写自定义日期格式化(format)函数(switch函数使用不同分枝格式化日期数据).应用自定函数 ...
- R语言merge函数全连接dataframe数据(Full (outer) join)、merge函数进行全连接必须将参数all设置为true(all=TRUE)、默认merge函数通过公共列名合并数
R语言merge函数全连接dataframe数据(Full (outer) join).merge函数进行全连接必须将参数all设置为true(all=TRUE).默认merge函数通过公共列名合并数 ...
- R语言split函数、unsplit函数按组拆分数据、合并数据实战
R语言split函数.unsplit函数按组拆分数据.合并数据实战 目录 R语言split函数.unsplit函数按组拆分数据.合并数据实战 #基本语法
- R语言merge函数左连接dataframe数据(Left (outer) join in R)、左连接必须将参数all设置(all.x = TRUE)、默认merge函数通过公共列名合并数据集
R语言merge函数左连接dataframe数据(Left (outer) join in R).merge函数进行左连接必须将参数all设置为(all.x = TRUE).默认merge函数通过公共 ...
- R语言head函数和tail函数获取dataframe、列表list、向量vector的头部和尾部数据:tail提取数据对象的尾部数据、head提取数据对象的头部数据、默认6条数据、自定义设置返回条数
R语言head函数和tail函数获取dataframe.列表list.向量vector的头部和尾部数据:tail提取数据对象的尾部数据.head提取数据对象的头部数据.默认6条数据.自定义设置返回条数 ...
- R语言unlist函数将复杂数据(list列表、dataframe、字符串String)对象处理成简单向量vector形式:将包含dataframe和字符串的向量列表转换为单个向量(删除数据名称)
R语言unlist函数将复杂数据(list列表.dataframe.字符串String)对象处理成简单向量vector形式:将包含dataframe和字符串的向量列表转换为单个向量(删除数据名称) 目 ...
- R语定义函数对宽分布(wide distribution )、有偏分布(skew distribution)的数据进行对数变换(符号对数变换函数、signed log transformation)
R语言自定义函数对宽分布(wide distribution ).有偏分布(skew distribution)的数据进行对数变换(符号对数变换函数.signed log transformation ...
最新文章
- 邮箱性质--全选单选的操作和传值 用属性的name传值
- python 可变参数
- 3分钟教你用python制作一个简单词云
- LEGO EV3 通信开发者套件
- 《数学之美》——第三章 个人笔记
- modbus软件开发实战指南_C++核心准则?GSL:指南支持库
- sql 避免除0错误_设计简历时避免这3个常见的UX错误
- (转)android WebView loadData不能解析(找不到网页)
- r语言处理数据集编码_在强调编码语言或工具之前,请学习这3个基本数据概念
- python-while循环简单版-练习
- asp.net网站后台退出后,点后退按钮仍能进,如何安全退出
- sun服务器如何查cpu信息,solaris 如何查看CPU信息
- lammps教程:推荐几个比较实用的lammps自带函数(2)
- 第一章:一年365天,每天进步1‰,累计进步多少?一年365天,每天退步1‰,累计退步多少?format入门
- Android 8.0 recovery 流程分析
- lua生成随机数,设置随机数种子
- JDK8安装 及 环境变量配置(新手向)
- mysql余额统计_实现按部门月卡余额总额分组统计的SQL查_mysql
- PCF8591 ADC 模数转换模块使用
- Vue vue-jsonp 跨域
热门文章
- 计算机到交换机端口查询,新手上路:根据ip地址查交换机端口网络知识 -电脑资料...
- arcpy.mapping-认识arcpy.mapping
- 10.30系统进程及服务控制,前后台调用,kill,进程信号,top进程动态监控,系统控制systemctl,ssh服务和认证,用户登陆审计
- Z05 - 006、网站转化以及漏斗分析(转化分析)
- 小米MIUI手机adb连接教程
- 手机如何测光照度_照度测定方法
- CNCF 新掌舵人首次亮相中国,KubeCon 2020 云原生峰会网上行
- CAD如何输入指定角度的直线、AUTOCAD——渐变填充
- 岳飞诗词集萃[zz]
- OpenStack Blazar 架构解析与功能实践