目录

  • 引言
  • 函数
    • if函数
    • 逻辑函数
  • 总结

引言

本文编写的函数是符号函数sgn,符号函数的定义如下:
f(x)={1,x>00,x=0−1,x<0f(x)=\left\{ \begin{aligned} 1 ,x >0 \\ 0, x = 0 \\ -1, x <0\\ \end{aligned} \right. f(x)=⎩⎪⎨⎪⎧​1,x>00,x=0−1,x<0​
R语言内部没有这个内置函数。我们可以通过function、if函数很简单的定义自己的符号函数,因为if函数不能向量化判断,所以很难写成向量化的函数。在写自己的算法的时候如果表达式中用到符号函数就会在模拟的时候变得很慢。本文就从逻辑函数的角度来定义符号函数。

函数

if函数

非向量化的

> sgn_x <- function(x){+   if(x > 0) return(1)
+   else if(x < 0) return(-1)
+   else return(0)
+ }
> x = -5:5
> x[1] -5 -4 -3 -2 -1  0  1  2  3  4  5
> sgn_x(x)
[1] -1
Warning messages:
1: In if (x > 0) return(1) else if (x < 0) return(-1) else return(0) :条件的长度大于一,因此只能用其第一元素
2: In if (x < 0) return(-1) else return(0) :条件的长度大于一,因此只能用其第一元素
> sgn_x(10.5)
[1] 1
> sgn_x(0)
[1] 0
> sgn_x(-0.5)
[1] -1

向量化的

> sgn_v <- function(x){+   for(i in 1:length(x)) x[i] <- sgn_x(x[i])
+   return(x)
+ }
> x = -5:5
> x[1] -5 -4 -3 -2 -1  0  1  2  3  4  5
> sgn_v(x)[1] -1 -1 -1 -1 -1  0  1  1  1  1  1

逻辑函数

> sgn <- function(x){+   2*(x > 0) + (x == 0) - 1
+ }
> x = -5:5
> x[1] -5 -4 -3 -2 -1  0  1  2  3  4  5
> sgn(x)[1] -1 -1 -1 -1 -1  0  1  1  1  1  1

总结

可以看出sgn_v这是一个伪向量化的函数,实际还是循环

R语言——符号函数(向量化)相关推荐

  1. R语言 自定义函数之趣味程序--老虎机

    ****R语言 自定义函数之趣味程序--老虎机**** 自定义函数 自定义规则 自定义格式 案例:老虎机 老虎机符号准备 老虎机结果分类 老虎机得分计算 开始老虎机试玩 获奖感言 自定义函数 R语言作 ...

  2. R语言str_trim函数去除字符串中头部和尾部的空格

    R语言str_trim函数去除字符串中头部和尾部的空格 目录 R语言str_trim函数去除字符串中头部和尾部的空格 #导入包和库 #仿

  3. R语言sqrt函数为数值开平方根实战

    R语言sqrt函数为数值开平方根实战 目录 R语言sqrt函数为数值开平方根实战 #基本语法 #sqrt函数开平方根

  4. R语言数学函数:abs绝对值、sqrt平方根、ceiling向上近似整数、floor向下近似整数、trunc去除小数部分、round近似到指定小数位、signif近似到有效数字、三角函数、指数、对数

    R语言数学函数:abs绝对值.sqrt平方根.ceiling向上近似整数.floor向下近似整数.trunc去除小数部分.round近似到指定小数位.signif近似到有效数字.三角函数.指数.对数 ...

  5. R语言sd函数计算数值标准差实战(Standard Deviation)

    R语言sd函数计算数值标准差实战(Standard Deviation) 目录 R语言sd函数计算数值标准差实战(Standard Deviation) #基本语法 #sd

  6. R语言optimize函数一维优化实战

    R语言optimize函数一维优化实战 目录 R语言optimize函数一维优化实战 #基础语法 #优化用户自定义的函数

  7. R语言rev函数对数据对象(向量、dataframe通过行或者列)反序实战

    R语言rev函数对数据对象(向量.dataframe通过行或者列)反序实战 目录 R语言rev函数对数据对象(向量.dataframe通过行或者列)反序实战

  8. R语言用户自定义函数的语法结构、编写自定义统计值计算函数(使用ifelse结构计算均值和标准差等)、编写自定义日期格式化(format)函数(switch函数使用不同分枝格式化日期数据)、应用自定函数

    R语言用户自定义函数的语法结构.编写自定义统计值计算函数(使用ifelse结构计算均值和标准差等).编写自定义日期格式化(format)函数(switch函数使用不同分枝格式化日期数据).应用自定函数 ...

  9. R语言merge函数全连接dataframe数据(Full (outer) join)、merge函数进行全连接必须将参数all设置为true(all=TRUE)、默认merge函数通过公共列名合并数

    R语言merge函数全连接dataframe数据(Full (outer) join).merge函数进行全连接必须将参数all设置为true(all=TRUE).默认merge函数通过公共列名合并数 ...

  10. R语言percent函数用百分比表示数值实战

    R语言percent函数用百分比表示数值实战 目录 R语言percent函数用百分比表示数值实战 #仿真数据

最新文章

  1. java 高并发第三阶段实战_JAVA多线程编程实战视频-第三阶段(共80节)
  2. #中delay函数_ECBM系列教程3:闪烁灯——delay函数的用法。
  3. 判断某程序是64位还是32位
  4. 初识c++中的函数模板
  5. ubuntu安装python3.6_Ubuntu上安装python3.6以及多版本python管理 | SQN
  6. 关于Java的静态初始化块
  7. 【人生】不管你挣多少, 钱永远是问题
  8. c++多线程——数据共享
  9. 如何写一首悲伤的原创歌曲?
  10. vb计算机清除菜单代码,动态增减菜单用法 _VB编程语言动态增减菜单-w3school教程...
  11. 味美多网址导航php,味多美网址导航源码程序按来路自动显示 2010.0329
  12. 雄迈视频板使用调试串口作为普通串口通信
  13. 申请gmail邮箱及foxmail邮箱
  14. 联合循环——13(智慧电厂的发展与展望)
  15. 农村姑娘误加了一个博士群,结果...
  16. android 动态、静态壁纸实现
  17. Vue生成二维码组件封装
  18. DHCP+DHCP中继
  19. ISO 8601 标准时间格式
  20. my_RIO实现小车避障

热门文章

  1. 联想服务器查看raid信息,联想服务器raid信息恢复
  2. UDS知识整理(一):UDS简介与UDS要求规范简介
  3. 自定义锁屏图片 win7
  4. 快速翻译整篇pdf外文文献
  5. sql语句查询A表有而B表没有的数据
  6. 攻防世界Web新手区题解
  7. java 生成格林威治时间
  8. 计算机机房前端,(前端机房试题.doc
  9. Java实现 LeetCode 686 重复叠加字符串匹配
  10. 机器学习中的数学基础--特征函数与中心极限定理,统计学基本概念,极大似然估计,最大后验估计