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.rhkb.cn/news/109988.html

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

相关文章

css元素定位:通过元素的标签或者元素的id、class属性定位,还不明白的伙计,看这个就行了!

前言 大部分人在使用selenium定位元素时&#xff0c;用的是xpath元素定位方式&#xff0c;因为xpath元素定位方式基本能解决定位的需求。xpath元素定位方式更直观&#xff0c;更好理解一些。 css元素定位方式往往被忽略掉了&#xff0c;其实css元素定位方式也有它的价值&…

WPF自定义命令及属性改变处理

1、项目建构 2、自定义命令 namespace WpfDemo.Base {public class MyCommand : ICommand{Action executeAction;public MyCommand(Action action){executeAction action;}public event EventHandler? CanExecuteChanged;public bool CanExecute(object? parameter){retu…

【从零开始学习JAVA | 第四十六篇】处理请求参数

前言&#xff1a; 在我们之前的学习中&#xff0c;我们已经基本学习完了JAVA的基础内容&#xff0c;从今天开始我们就逐渐进入到JAVA的时间&#xff0c;在这一大篇章&#xff0c;我们将对前后端有一个基本的认识&#xff0c;并要学习如何成为一名合格的后端工程师。今天我们介绍…

北京筑龙受邀出席中物联“采购供应链中国行—走进雄安”活动

日前&#xff0c;“采购供应链中国行—走进雄安”活动在河北雄安新区成功举办&#xff0c;来自30家相关单位的50余名领导和代表参加了本次活动。活动由中国物流与采购联合会公共采购分会主办&#xff0c;中国物流与采购联合会采购委、中国雄安集团有限公司、河北雄安新区招标投…

在 Python 中逐步构建 DCF(贴现流)估值

Building A DCF Valuation in Python, Step by Step | by Roi Polanitzer | Medium 说明 这是一个真实的&#xff0c;以色列国土内的公司业务评估案例。在本文中&#xff0c;我将演示如何使用python中的DCF方法对以色列系统和应用程序公司进行业务评估。因为存在许多业务术语&a…

Jmeter(二十八):beanshell的使用

Beanshell 是一种轻量级的 Java 脚本,纯 Java 编写的,能够动态的执行标准 java 语法及一些扩展脚本语法,类似于 javaScript,在工作中可能用的多的就是: Beanshell 取样器:跟Http取样器并列Beanshell前置处理器:一般放在Http请求下,在请求前处理一些数据Beanshell后置处…

万级数据优化EasyExcel+mybatis流式查询导出封装

文章目录 前言.千万级数据优化一. 直接上流式查询封装工具代码二. 传统分页导出查询三. 流式查询概念游标查询 前言.千万级数据优化 我们不妨先给大家讲一个概念&#xff0c;利用此概念我们正好给大家介绍一个数据库优化的小技巧&#xff1a; 需求如下&#xff1a;将一个地市表…

【conda install】网络慢导致报错CondaHTTPError: HTTP 000 CONNECTION FAILED for url

⭐⭐问题&#xff1a; 部署安装环境经常会出现由于网络慢问题&#xff0c;导致conda安装不了库&#xff0c;报错如下&#xff1a; Solving environment: failedCondaHTTPError: HTTP 000 CONNECTION FAILED for url <https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/…

c#在MVC Api(.net framework)当中使用Swagger,以及Demo下载

主要的步骤就是创建项目&#xff0c;通过nuget 添加Swashbuckle包&#xff0c;然后在SwaggerConfig当中进行相关的配置。 具体的步骤&#xff0c;可以参考下面的链接&#xff1a; https://www.cnblogs.com/94pm/p/8046580.htmlhttps://blog.csdn.net/xiaouncle/article/detail…

BookStack开源免费知识库docker-compose部署

BookStack&#xff08;书栈&#xff09;是一个功能强大且易于使用的开源知识管理平台&#xff0c;适用于个人、团队或企业的文档协作和知识共享。 一、BookStack特点 简单易用&#xff1a;BookStack提供了一个直观的用户界面&#xff0c;使用户能够轻松创建、编辑和组织文档多…

初学者必看!我的第一个Invideo人工智能文字生成视频

这是一个使用人工智能生成视频的在线平台。 主要功能包括: - 视频脚本自动生成:可以通过输入主题,由AI自动生成视频故事剧本。 - 人声合成:支持上传脚本,AI会合成自然的人声进行朗读。 - 视频制作:有多种视频模板可选择,支持上传自己的素材,一键生成完整视频。 - 特效和增…

SpringCluod深入教程

1.Nacos配置管理 Nacos除了可以做注册中心&#xff0c;同样可以做配置管理来使用。 1.1.统一配置管理 当微服务部署的实例越来越多&#xff0c;达到数十、数百时&#xff0c;逐个修改微服务配置就会让人抓狂&#xff0c;而且很容易出错。我们需要一种统一配置管理方案&#…

平衡二叉树(AVL树)C++

目录 AVL树的概念 AVL树的节点结构 AVL树的插入 更新平衡节点 代码实现 AVL树的旋转 左单旋 右单旋 左右双旋 右左双旋 AVL树的删除 AVL树的查找 AVL树的高度 AVL树的判定 AVL树的遍历 AVL树的概念 二叉排序&#xff08;搜索&#xff09;树&#xff0c;虽然可以…

vue2项目中表格的增删查改

我们在项目中经常会用到对于表格的增删查改操作&#xff0c;以下使用vue2elementui来实现表格的增删查改 表格的基本属性 基础表格如下:(其中需要注意的是当el-table元素中注入data对象数组后&#xff0c;在el-table-column中用prop属性来对应对象中的键名即可填入数据&#x…

Oracle创建控制列表ACL(Access Control List)

Oracle创建控制列表ACL&#xff08;Access Control List&#xff09; Oracle ACL简介一、先登陆163邮箱设置开启SMTP。二、Oracle ACL控制列表处理&#xff08;一&#xff09;创建ACL&#xff08;create_acl&#xff09;&#xff08;二&#xff09;添加ACL权限&#xff08;add_…

②matlab桌面和编辑器

目录 matlab编辑器练习 运行脚本 matlab编辑器练习 您可以通过点击灰色代码框在脚本中输入命令。 准备就绪后&#xff0c;您可以通过点击蓝色的提交按钮提交代码。 任务 在脚本中输入命令 r 3。 2.任务 在脚本中添加命令 x pi*r^2。 附加练习 当您在实时编辑器中完成…

MyBatis分页插件PageHelper的使用及MyBatis的特殊符号---详细介绍

一&#xff0c;分页的概念 分页是一种将大量数据或内容分割成多个页面以便逐页显示的方式。在分页中&#xff0c;数据被分割成一定数量的页&#xff0c;每页显示一部分数据或内容&#xff0c;用户可以通过翻页或跳分页是一种将大量数据或内容分割成多个页面以便逐页显示的方式。…

跨平台图表:ChartDirector for .NET 7.1 Crack

什么是新的 ChartDirector for .NET 7.0 支持跨平台使用&#xff0c;但仅限于 .NET 6。这是因为在 .NET 7 中&#xff0c;Microsoft 停止了用于非 Windows 使用的 .NET 图形库 System.Drawing.Common。由于 ChartDirector for .NET 7.0 依赖于该库&#xff0c;因此它不再支持 .…

设计模式—职责链模式(Chain of Responsibility)

目录 思维导图 什么是职责链模式&#xff1f; 有什么优点呢&#xff1f; 有什么缺点呢&#xff1f; 什么场景使用呢&#xff1f; 代码展示 ①、职责链模式 ②、加薪代码重构 思维导图 什么是职责链模式&#xff1f; 使多个对象都有机会处理请求&#xff0c;从而避免请…

视频汇聚/视频云存储/视频监控管理平台EasyCVR安全检查的相关问题及解决方法

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快&#xff0c;可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等&#xff0c;以及支持厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安…