目录

  • 引言
  • 函数
    • 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. 个人信息泄露致电信诈骗猖獗 专家:治理亟须完善立法
  2. 军工企业敏捷项目管理
  3. 豆瓣评分 8.6,近 5 万读者学习的 Android 经典最新版出版,承载无数程序员的回忆......
  4. 最新wingide6破解方法(支持Linux),亲测有效,支持python3.0
  5. 网络协议系列之四:IGMP、ICMP和ARP
  6. java如何写外键关联_JAVA基础:Hibernate外键关联与HQL语法
  7. Nginx的rewrite之rewrite指令
  8. 判断true的正确做法
  9. java excel 转pdf
  10. ssm框架里面前端拿HTML写,ssm框架引入Vue,声明式渲染,标签的href拼接字符串
  11. 【golang】从源代码编译golang编译器
  12. Android异常总结---type Status report message HTTP method GET is not supported by this URL
  13. Photoshop 操作显示滞后问题及解决方法
  14. 数据库课程设计专题-数据库课程设计大作业作业列表【建议在校生收藏】
  15. postgres用户管理及权限控制--赋予某账号只读权限
  16. php 条形码在线怎么生成,php实现在线生成条形码示例分享(条形码生成器)
  17. java俄罗斯方块七中图形类_shell中的俄罗斯方块小游戏
  18. pl/sql 执行sql文件以及批量执行sql文件
  19. Cadence导入IBIS模型用于仿真
  20. html默认样式总结

热门文章

  1. 微软的teredo服务器,win10系统通过teredo连接ipv6的具体教程
  2. mac下面如何修改只读文件(Read-only file system)
  3. 解决开机时出现An operating system wasn‘t found问题
  4. coursera “the media could not be loaded either because the server or network falled...“解决办法
  5. 秘密打印机涉密计算机之间,涉密打印机与涉密计算机之间应该怎么连接
  6. Android补间动画之透明度动画
  7. 支付宝没有优势了,五大银行宣布今起手机银行转账汇款免收手续费
  8. 珍大户 认知世界的经济学 经济学核心原理 思维导图
  9. TOP100summit分享实录 | 网易卡爷:实战解读增长黑客在 B 端业务中的应用
  10. matlab里面box on啥意思,image – Matlab图片中的Box on和axis坐标