R语言常用数学函数

目录

1.+ - * / ^

2.%/%和%%

3.ceiling,floor,round

4.signif,trunc,zapsamll

5.max,min,mean,pmax,pmin

6.range和sum

7.prod

8.cumsum,cumprod,cummax,cummin

9.sort

10. approx

11.approx fun

12.diff

13.sign

14.var和sd

15.median

16.IQR

17.ave

18.fivenum

19.mad

20.quantile

21.stem

22.一维优化与求根

23.常用数学函数

24.高级数学函数


1.+ - * / ^

1.5 + 2.3 - 0.6 + 2.1*1.2 - 1.5/0.5 + 2^3## [1] 10.72#可以用圆括号改变优先级
1.5 + 2.3 - (0.6 + 2.1)*1.2 - 1.5/0.5 + 2^3## [1] 5.56

2.%/%和%%

5 %/% 3
## [1] 1
5 %% 3
## [1] 2
5.1 %/% 2.5
## [1] 2
5.1 %% 2.5
## [1] 0.1

3.ceiling,floor,round

#"ceiling"函数将输入的数字向上取整,返回大于或等于输入值的最小整数。ceiling(3.14) # 输出 4
ceiling(-2.5) # 输出 -2#"floor"函数将输入的数字向下取整,返回小于或等于输入值的最大整数。floor(3.14) # 输出 3
floor(-2.5) # 输出 -3#"round"函数将输入的数字四舍五入为最接近的整数。round(3.14) # 输出 3
round(-2.5) # 输出 -2#round第二个参数,指定要保留的位数
round(3.14159, 2)将返回保留两位小数的结果:3.14

4.signif,trunc,zapsamll

#signif函数用于保留指定有效数字位数
#它将输入的数字四舍五入到指定位数,并返回结果signif(3.14159, 3) # 输出 3.14
signif(1234.5678, 2) # 输出 1200#trunc函数截断(向零取整)输入的数字,即将小数部分去掉trunc(3.14) # 输出 3
trunc(-2.5) # 输出 -2#zapsmall函数用于移除非常接近零的小数误差
#它将输入的数字中非常小的值替换为零zapsmall(1e-10) # 输出 0
zapsmall(0.000000001) # 输出 0

5.max,min,mean,pmax,pmin

#max函数用于计算一组数中的最大值
#它接受多个参数或一个向量作为输入,并返回其中的最大值。max(2, 5, 1) # 输出 5
max(c(4, 6, 3)) # 输出 6#min函数用于计算一组数中的最小值
#它接受多个参数或一个向量作为输入,并返回其中的最小值。min(2, 5, 1) # 输出 1
min(c(4, 6, 3)) # 输出 3# 计算向量的平均值
x <- c(1, 2, 3, 4, 5)
avg <- mean(x)print(avg)
#输出 [1] 3#pmax函数用于逐个比较两个或多个向量中的相应元素
#并返回对应位置上的最大值向量pmax(c(1, 3, 5), c(2, 4, 6)) # 输出 2 4 6
pmax(c(1, 3, 5), c(2, 4, 6), c(0, 8, 7)) # 输出 2 8 7#pmin函数用于逐个比较两个或多个向量中的相应元素
#并返回对应位置上的最小值向量pmin(c(1, 3, 5), c(2, 4, 6)) # 输出 1 3 5
pmin(c(1, 3, 5), c(2, 4, 6), c(0, 8, 7)) # 输出 0 3 5

6.range和sum

#返回一个包含最小值和最大值的长度为2的向量range(c(2, 5, 1)) # 输出 1 5
range(1:10) # 输出 1 10#sum函数用于计算给定向量或数值序列的总和
#它接受一个向量作为输入,并返回所有元素的累加和sum(c(2, 5, 1)) # 输出 8
sum(1:10) # 输出 55

7.prod

#prod是用于计算一组数的乘积的函数prod(c(2, 3, 4)) # 输出 24,即 2 * 3 * 4#如果向量中存在0,则结果将始终为0prod(c(2, 0, 4)) # 输出 0,因为存在0#同样,如果向量中有任何非数值(例如字符或缺失值)
则结果将为NA(不可用)prod(c(2, "a", 4)) # 输出 NA,因为存在非数值元素

8.cumsum,cumprod,cummax,cummin

#cumsum函数用于计算给定向量或数值序列中元素的累积和cumsum(c(2, 3, 4)) 
# 输出 2 5 9,即 2, 2+3, 2+3+4#cumprod函数用于计算给定向量或数值序列中元素的累积乘积cumprod(c(2, 3, 4)) 
# 输出 2 6 24,即 2, 2*3, 2*3*4#cummax函数用于计算给定向量或数值序列中元素的累积最大值cummax(c(2, 3, 4, 1, 5)) 
# 输出 2 3 4 4 5,即 2, max(2,3), max(2,3,4), max(2,3,4,1), max(2,3,4,5)#cummin函数用于计算给定向量或数值序列中元素的累积最小值cummin(c(2, 3, 4, 1, 5)) 
# 输出 2 2 2 1 1,即 2, min(2,3), min(2,3,4), min(2,3,4,1),min(2,3,4,1,5)

9.sort

(1)对向量排序

sort(c(3, 1, 4, 2)) # 输出 1 2 3 4

(2) 降序排序

sort(c(3, 1, 4, 2), decreasing = TRUE) # 输出 4 3 2 1

(3) 对数据框按照某列进行排序

df <- data.frame(x = c(3, 1, 4, 2), y = c("A", "B", "C", "D"))
sorted_df$x  # 获取排序后的 x 列
sorted_df$y  # 获取排序后的 y 列
sorted_df[1, ]  # 获取排序后的第一行数据

(4) 降序排序

sorted_df <- df[order(df$x, decreasing = TRUE), ] # 按 x 列降序排序

10. approx

#approx函数用于执行线性插值或平滑插值
approx(x, y = NULL, xout, method = "linear", rule = 2, f = 0, ties = mean)

常用参数

  • x:输入变量的向量。
  • y:输出变量的向量。当进行插值时,需要提供此参数。
  • xout:用于进行估计或插值的输出变量的取值点。这是一个可选的参数。
  • method:指定插值方法,默认为"linear"(线性插值)。还可以选择"constant"(常数插值)或"spline"(样条插值)等。
  • rule:在估计或插值点不在输入变量范围内时的处理规则。它控制如何对缺失值或超出范围的值进行处理。默认为2,表示生成具有最小相对误差的结果。
  • f:自定义函数,用于在估计或插值点上执行特定的计算。
  • ties:用于处理在估计或插值点存在多个匹配的情况下如何处理。
    • "ordered":根据输入变量 x 的顺序,按照与估计或插值点最接近的方式处理匹配值。默认情况下,ties参数设置为"mean"
    • "mean":将匹配值的平均值作为结果。如果有多个匹配值,将它们的平均值用于计算结果。
    • "min":选择匹配值中的最小值作为结果。
    • "max":选择匹配值中的最大值作为结果。
# 创建输入数据
x <- c(1, 2, 4, 5)  # 输入变量 x
y <- c(3, 6, 2, 8)  # 输出变量 y# 进行线性插值
interp <- approx(x, y, xout = seq(min(x), max(x), by = 0.1))# 输出结果
print(interp)

11.approx fun

# 自定义函数
my_fun <- function(x, y) {return(x^2 + y)
}# 创建输入数据
x <- c(1, 2, 4, 5)
y <- c(3, 6, 2, 8)# 使用自定义函数进行插值
interp <- approx(x, y, xout = seq(min(x), max(x), by = 0.1), f = my_fun)# 输出结果
print(interp)

12.diff

#diff函数用于计算向量或时间序列的差分
#对于长度为 n 的向量,diff函数将返回一个长度为 n-1 的向量
#其中第 i 个元素是原始向量中第 (i+1) 个元素减去第 i 个元素的结果。
vec <- c(2, 6, 5, 8, 3)diff_vec <- diff(vec)print(diff_vec)#输出 [1]  4 -1  3 -5

13.sign

sign函数用于返回给定数值的符号

  • 如果输入值大于0,则返回1。
  • 如果输入值等于0,则返回0。
  • 如果输入值小于0,则返回-1。
num <-  -5sign_num <- sign(num)print(sign_num)#输出 [1] -1
#因为-5是一个负数

14.var和sd

# 计算向量的方差和标准差
x <- c(1, 2, 3, 4, 5)variance <- var(x)
standard_deviation <- sd(x)print(variance)
print(standard_deviation)

15.median

# 计算向量的中位数
x <- c(1, 2, 3, 4, 5)median_value <- median(x)print(median_value)#输出 [1] 3

16.IQR

# 计算向量的四分位距
x <- c(1, 2, 3, 4, 5)iqr_value <- IQR(x)print(iqr_value)#输出 [1] 2

17.ave

用于根据某个变量对向量或数据框进行分组,并对每个组应用函数

# 创建一个数据框
df <- data.frame(name = c("Alice", "Bob", "Alice", "Charlie", "Charlie", "Bob"),score = c(85, 90, 92, 78, 80, 88)
)# 对数据框中的 score 列按 name 分组,计算每个组的平均值
average_scores <- ave(df$score, df$name, FUN = mean)print(average_scores)

18.fivenum

# 计算向量的五数概括统计量
#包括最小值、下四分位数、中位数、上四分位数和最大值
x <- c(1, 2, 3, 4, 5)fivenum_values <- fivenum(x)print(fivenum_values)

19.mad

# 计算向量的绝对中位差
x <- c(1, 2, 3, 4, 5)mad_value <- mad(x)print(mad_value)

20.quantile

# 计算向量的分位数
x <- c(1, 2, 3, 4, 5)# 计算四分位数
quartiles <- quantile(x, probs = c(0.25, 0.5, 0.75))print(quartiles)

21.stem

# 创建茎叶图
x <- c(12, 23, 34, 45, 56, 67, 78, 89, 90)stem(x)

22.一维优化与求根

(1)optimize

optimize() 函数用于在给定区间内寻找一个函数的最小值或最大值。

#optimize(f, interval, maximum = FALSE, tol = .Machine$double.eps^0.25)#f 是要最小化或最大化的函数;
#interval 是定义函数的有效区间。
#maximum:一个逻辑值,用于指定是寻找最小值还是最大值。默认为 FALSE,表示寻找最小值。
#tol:一个数值,表示收敛容差(convergence tolerance)。默认值为 .Machine$double.eps^0.25,使用机器精度的推荐容差。f <- function(x) x^2 - 4 * x + 3result <- optimize(f, c(0, 5))
print(result$minimum)  # 输出函数的最小值
#输出 [1] 2

(2)uniroot

uniroot() 函数用于在给定区间内寻找一个函数的根

#uniroot(f, interval)
#f 是要寻找根的函数;interval 是定义函数的有效区间
f <- function(x) x^3 - 2 * x - 5result <- uniroot(f, c(1, 3))
print(result$root)  # 输出函数的根#输出 [1] 2.094526

(3)polyroot

polyroot() 函数用于找到多项式函数的所有根

# polyroot(coeffs)
#coeffs 是一个包含多项式系数的向量coeffs <- c(1, -5, 4)roots <- polyroot(coeffs)
print(roots)  # 输出多项式函数的所有根#输出 [1] 4+0i 1+0i

23.常用数学函数

#abs:获取数值的绝对值
abs(-5) # 输出 5
abs(3.14) # 输出 3.14#sqrt:计算数值的平方根
sqrt(9) # 输出 3
sqrt(2) # 输出 1.414213 #sin:正弦
sin(x)#cos:余弦
cos(x)#tan:正切
tan(x)#asin:反正弦
asin(x)#acos:反余弦
acos(x)#atan:反正切
atan(x)#atan2:给定y和x坐标的反正切
atan2(y,x)#sinh:双曲正弦值
sinh(x)#cosh:双曲余弦值
cosh(x)#tanh:双曲正弦值
tanh(x)#ashih:反双曲正弦值
ashih(x)#acosh:反双曲余弦值
acosh(x)#atanh:反双曲正切值
atanh(x)

24.高级数学函数

#beta函数:计算两个参数的Beta函数值beta(x,y)#lbeta函数:计算两个参数的Beta函数的自然对数lbeta(x,y)#gamma函数:计算给定参数的伽玛函数值gamma(x)#lgamma函数:计算给定参数的伽玛函数的自然对数lgamma(x)#digamma函数:计算给定参数的Ψ函数值(第一类对数勒让德函数)digamma(x)#digamma函数:计算给定参数的Ψ函数值(第一类对数勒让德函数)trigamma(x)#tetragamma函数:计算给定参数的Ψ函数的二阶导数值(第三类对数勒让德函数)tetragamma(x)#pentagamma函数:计算给定参数的Ψ函数的三阶导数值(第四类对数勒让德函数)pentagamma(x)#choose函数:计算组合数choose(n,k)#lchoose函数:计算组合数的自然对数lchoose(n,k)
#fft函数:执行快速傅里叶变换(FFT),将信号从时域转换为频域。fft(x)#mvfft函数:执行多维傅里叶变换。mvfft(x)#convolve函数:计算两个向量的卷积(线性卷积)。convolve(x, y)#polyroot函数:找到多项式的根。polyroot(p)#polyroot函数:找到多项式的根。poly(x,degree)#spline函数:执行样条插值,生成平滑插值曲线。spline(x, y, xout)#splinefun函数:生成根据样条插值生成的函数。splinefun(x,y)
参数 x:输入值。参数 nu:阶数。
#besselI函数:计算修正的贝塞尔函数I。besselI(x, nu)#besselK函数:计算修正的贝塞尔函数K。besselK(x,nu)#besselJ函数:计算贝塞尔函数J。besselJ(x, nu)#besselY函数:计算贝塞尔函数Y。besselY(x, nu)#gammaCody函数:计算递归修正伽玛函数。gammaCody(x)#deriv函数:对简单表达式进行符号微分或算法微分。deriv(expr, name)

如有新学习的知识会补充,如有错误或遗漏请大佬们不吝赐教!!💖💖💖

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/55826.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用Python写一个武侠游戏

前言 在本教程中&#xff0c;我们将使用Python写一个武侠类的游戏&#xff0c;大的框架全部搭好了&#xff0c;很多元素都可以自己添加&#xff0c;让游戏更丰富 &#x1f4dd;个人主页→数据挖掘博主ZTLJQ的主页 个人推荐python学习系列&#xff1a; ☄️爬虫JS逆向系列专栏 -…

编码过程中需要注意哪些安全问题?

SQL 安全 注入式&#xff08;Inject&#xff09;攻击是一类非常常见的攻击方式&#xff0c;其基本特征是程序允许攻击者将不可信的动态内容注入到程序中&#xff0c;并将其执行&#xff0c;这就可能完全改变最初预计的执行过程&#xff0c;产生恶意效果。下面是几种主要的注入…

帆软报表系统获取管理员权限

子曰&#xff1a;“君子食无求饱&#xff0c;居无求安&#xff0c;敏于事而慎于言&#xff0c;就有道而正焉&#xff1a;可谓好学也已。” 漏洞实战 构造payload&#xff0c;访问漏洞url后台地址&#xff1a; /ReportServer?opfr_auth&cmdah_loginui&_161983254558…

基于安卓的考研助手系统app 微信小程序

&#xff0c;设计并开发实用、方便的应用程序具有重要的意义和良好的市场前景。HBuilder技术作为当前最流行的操作平台&#xff0c;自然也存在着大量的应用服务需求。 本课题研究的是基于HBuilder技术平台的安卓的考研助手APP&#xff0c;开发这款安卓的考研助手APP主要是为了…

Go【gin和gorm框架】实现紧急事件登记的接口

简单来说&#xff0c;就是接受前端微信小程序发来的数据保存到数据库&#xff0c;这是我写的第二个接口&#xff0c;相比前一个要稍微简单一些&#xff0c;而且因为前端页面也是我写的&#xff0c;参数类型自然是无缝对接_ 前端页面大概长这个样子 先用apifox模拟发送请求测试…

在其他python环境中使用jupyter notebook

1、切换到目标python环境 activate 目标python环境 2、安装notebook内核包 pip install ipykernel 3、加环境加入到notebook中 python -m ipykernel install 目标python环境 4、切换到base环境 activate base 5、打开目标项目的对应盘 如果&#xff0c;项目在c盘&…

【linux进程概念】

目录&#xff1a; 冯诺依曼体系结构操作系统进程 基本概念描述进程-PCBtask_struct-PCB的一种task_ struct内容分类组织进程查看进程 fork()函数 冯诺依曼体系结构 我们常见的计算机&#xff0c;如笔记本。我们不常见的计算机&#xff0c;如服务器&#xff0c;大部分都遵守冯诺…

基于HarmonyOS ArkUI实现音乐列表功能

本节将演示如何在基于HarmonyOS ArkUI的List组件来实现音乐列表功能。 本文涉及的所有源码&#xff0c;均可以在文末链接中找到。 活动主页 华为开发者论坛 规则要求具体要求如下&#xff1a; 第1步&#xff1a;观看<HarmonyOS第一课>“营”在暑期•系列直播&#x…

(WAF)Web应用程序防火墙介绍

&#xff08;WAF&#xff09;Web应用程序防火墙介绍 1. WAF概述 ​ Web应用程序防火墙&#xff08;WAF&#xff09;是一种关键的网络安全解决方案&#xff0c;用于保护Web应用程序免受各种网络攻击和威胁。随着互联网的不断发展&#xff0c;Web应用程序变得越来越复杂&#x…

使用 uniapp 适用于wx小程序 - 实现移动端头部的封装和调用

图例&#xff1a;红框区域&#xff0c;使其标题区与胶囊对齐 一、组件 navigation.vue <template><view class"nav_name"><view class"nav-title" :style"{color : props.color, padding-top : toprpx,background : props.bgColor,he…

【字节跳动青训营】后端笔记整理-4 | Go框架三件套之GORM的使用

**本人是第六届字节跳动青训营&#xff08;后端组&#xff09;的成员。本文由博主本人整理自该营的日常学习实践&#xff0c;首发于稀土掘金。 我的go开发环境&#xff1a; *本地IDE&#xff1a;GoLand 2023.1.2 *go&#xff1a;1.20.6 *MySQL&#xff1a;8.0 本文介绍Go框架三…

【Java 高阶】一文精通 Spring MVC - 数据验证(七)

&#x1f449;博主介绍&#xff1a; 博主从事应用安全和大数据领域&#xff0c;有8年研发经验&#xff0c;5年面试官经验&#xff0c;Java技术专家&#xff0c;WEB架构师&#xff0c;阿里云专家博主&#xff0c;华为云云享专家&#xff0c;51CTO 专家博主 ⛪️ 个人社区&#x…

iOS 如何对整张图分别局部磨砂,并完全贴合

官方磨砂方式 - (UIVisualEffectView *)effectView{if(!_effectView){UIBlurEffect *blur [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight];_effectView [[UIVisualEffectView alloc] initWithEffect:blur];}return _effectView; }使用这种方式对一张图的上半部分和…

Nacos 注册中心的使用(单体)

环境 springboot springcloud Nacos注册中心服务端 下载windows版或Linux版&#xff1a;https://nacos.io/zh-cn 目录结构&#xff1a; 配置文件./config/application.properties 启动文件./bin/startup.cmd&#xff1a; cmd命令启动单机服务startup.cmd -m standalone 父…

dig批量域名逆向查询ip

dig批量域名逆向查询ip dig nocmd noall answer -f iplist.txtiplist.txt中内容 效果图&#xff1a; dig其他选项参数&#xff1a; dig www.baidu.com A # 查询A记录&#xff0c;如果域名后面不加任何参数&#xff0c;默认查询A记录 dig www.baidu.com MX # 查询MX记…

云服务器 宝塔(每次更新)

su root 输入密码 使用 root 权限 /etc/init.d/bt default 获取宝塔登录 位置和账号密码。进入宝塔 删除数据库 删除php前端站点 删除PM2后端项目 前端更改完配置打包dist文件 后端更改完配置项目打包 数据库结构导出 导入数据库 配置 PM2 后端 安装依赖

言有三新书出版,《深度学习之图像识别(全彩版)》上市发行,配套超详细的原理讲解与丰富的实战案例!...

各位同学&#xff0c;今天有三来发布新书了&#xff0c;名为《深度学习之图像识别&#xff1a;核心算法与实战案例&#xff08;全彩版&#xff09;》&#xff0c;本次书籍为我写作并出版的第6本书籍。 前言 2019年5月份我写作了《深度学习之图像识别&#xff1a;核心技术与案例…

Spring框架

一.简介 Spring 是 2003 年兴起,通过使用IOC 和 AOP 组成的轻量级的为解决企业级开发的Java开发框架 官网:Spring | Home 特点: 1.轻量级:资源jar包少,运行时框架占用资源少,效率更高 2.IOC(Inversion of Control),由Spring容器来对对象实行管理 3.AOP(面相切面的编程)是…

华为eNSP模拟器中,路由器如何添加serial接口

在ensp模拟器中新建拓扑后&#xff0c;添加2个路由器。 在路由器图标上单击鼠标右键&#xff0c;选择设置选项。 在【视图】选项卡的【eNSP支持的接口卡】窗口查找serial接口卡。 选择2SA接口卡&#xff0c;将其拖动到路由器空置的卡槽位。 如上图所示&#xff0c;已经完成路由…