目录

  • 引言
  • 函数
    • 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. 1013 Battle Over Cities(并查集解法)
  2. 服务国内超过70%游戏公司,腾讯游戏云发布游戏行业最全解决方案
  3. java ipv6正则表达式_IPV4和IPV6正则表达式的深入讲解
  4. servlet的重定向错误
  5. 与afreez一起学习DirectFB之:一个linux下的framebuffer例子的学问
  6. 系统性风险与个体性风险
  7. oracle sequences优化_Oracle优化(恒生内部常规分享)
  8. SimpleDateFormat关于时间类的一些常用处理
  9. 折线图x轴的日期会超出_折线图技巧丨阈限颜色设置
  10. java计算机毕业设计Vue.js网上书城管理系统设计与实现服务端源码+mysql数据库+系统+lw文档+部署
  11. 计算机word excel试题,计算机基础WORD、EXCEL试题
  12. 最新WingIDE注册破解方法
  13. Python——类和对象、魔术方法(day07)
  14. 麒麟座IIC-STM32F103RET6(2)-完成US延时
  15. 华硕部分飞行堡垒系列安装ubuntu16.04(uefi+gpt+win10环境)
  16. 6、spss做logistic回归
  17. 怎么样就是把最新的网址加上最新的日期呢?
  18. logisim 文档
  19. 成为CSDN博客专家_李孟_新浪博客
  20. 关于if-else配对的就近原则问题(适合初学者)

热门文章

  1. ITIL 2011 -- 服务运营的5个流程简介
  2. 智能访客机要注意这些陷阱
  3. 内核编译支持bonding模块
  4. db是哪个城市的缩写_全国所有城市拼音及缩写
  5. GUI简介、AWT、Frame、Penal
  6. python爬不同图片分别保存在不同文件夹中的实现
  7. 如何从零构建对内网穿透的理解
  8. 知识点滴 - 什么是YAML文件
  9. 被罗马人称为的三大蛮族去向和苏格拉的独立
  10. 使用gihub搭建个人博客