R语言 表达式对象的求值 eval

模式为 “expression”的对象在Expression objects 有具体定义。它们和引用对象的列表非常相似。

 > ex <- expression(2 + 2, 3 + 4)> ex[[1]]2 + 2> ex[[2]]3 + 4> eval(ex)[1] 7

注意,对一个表达式对象求值会对每个调用依次求值, 但是最终的值是最后一个引用的值。基于这种考虑, 它的行为几乎和复合语言对象 quote({2 + 2; 3 + 4}) 完全一致。但也有一些细微的差别: 调用对象在解析树里面不能和子表达式区分。 这就说明它们是以子表达式一样的方式自动求值。 表达式对象可以在求值过程中被识别,并且在某种意义上,保留了它们的引用。 求值程序不会递归对一个表达式对象求值,仅仅当它如前面的例子一样直接 传递给函数eval时求值。它们的差异 可以通过下面的例子看出:

 > eval(substitute(mode(x), list(x = quote(2 + 2))))[1] "numeric"> eval(substitute(mode(x), list(x = expression(2 + 2))))[1] "expression"

语法分析器通过创建它的调用来描述一个表达式对象。 这和处理数值向量和多个其它没有特别额外表示的对象的方法类似。 但是,它会导致一些困惑:

 > e <- quote(expression(2 + 2))> eexpression(2 + 2)> mode(e)[1] "call"> ee <- expression(2 + 2)> eeexpression(2 + 2)> mode(ee)[1] "expression"

即, e 和 ee 在打印的时候看上去是一样的,但是 其中一个是产生表达式对象的调用,而另外一个则是对象本身。

R语言 表达式对象的求值 eval相关推荐

  1. pnd1 c语言,c语言实现中缀后缀前缀表达式相互转化并求值

    <c语言实现中缀后缀前缀表达式相互转化并求值>由会员分享,可在线阅读,更多相关<c语言实现中缀后缀前缀表达式相互转化并求值(21页珍藏版)>请在人人文库网上搜索. 1.1)表达 ...

  2. C语言实现中缀转后缀表达式,并求值

    C语言实现中缀转后缀表达式,并求值 #include <stdio.h> #include <stdlib.h> #include <ctype.h> #inclu ...

  3. R语言数据对象与运算

    R语言数据对象与运算 笔记整理 2.1 数据对象及类型 R语言创建和控制的实体被称为对象(object) ls()命令来查看当前系统里的数据对象 R对象的名称必须以一个英文字母打头,并由一串大小写字母 ...

  4. r语言中对向量求条件语句_R中的条件语句

    r语言中对向量求条件语句 To advance with programming, we need to be able to control the flow of the program exec ...

  5. 前缀表达式的计算机求值

    前缀表达式的计算机求值特点 引例:某表达式的前缀形式为"+ -*^ABCD/E/F+GH",那么它的中缀形式为? 前缀表达式的操作 前缀表达式是一种没有括号的算术表达式,就是前序表 ...

  6. R语言dplyr包对独特值(distinct)进行计数实战

    R语言dplyr包对独特值(distinct)进行计数实战 目录 R语言dplyr包对独特值(distinct)进行计数实战

  7. R语言保存图片为特定dpi值(分辨率)的图像

    R语言保存图片为特定dpi值(分辨率)的图像 目录 R语言保存图片为特定dpi值(分辨率)的图像 # 保存为特定dpi像素的图像示例1

  8. R语言difftime函数计算时间差值实战

    R语言difftime函数计算时间差值实战 目录 R语言difftime函数计算时间差值实战 #基础语法 #获取difftime语法帮助

  9. 前缀中缀后缀表达式的计算求值

    原文在这里 表达式 前缀表达式(波兰表达式) 前缀表达式又称波兰式,前缀表达式的运算符位于操作数之前 举例说明: (3+4)×5-6 对应的前缀表达式就是 - × + 3 4 5 6 前缀表达式求值 ...

最新文章

  1. Android程序员眼中世界上最遥远的距离
  2. github样式错乱 解决
  3. Winform中对DevExpress的RadopGroup的Description、Value、Tag、Text的理解与使用
  4. SQL 除去数字中多于的0
  5. 日语学习-多邻国-关卡1-时间2
  6. 我点击一个单选框时另外一个单选框里的内容属性隐藏掉_一个交通工程专业硕士研究生的总结与独白(二):交通生成预测及TransCAD操作...
  7. python输出缓冲区的问题
  8. 时间序列深度学习:seq2seq 模型预测太阳黑子
  9. 大哉昆仑的 双英雄的无敌bug存档
  10. Python-人脸识别并判断表情 笑脸或非笑脸 使用笑脸数据集genki4k
  11. oracle数据库ORA-报错大全
  12. sql中模糊查询的字段中包含百分号%的语句
  13. 02 夯实根基,web网页基础
  14. 怎么设置Android Studio的代码字体和代码文字大小
  15. matlab怎么使用subplot,subplot怎么用
  16. ubuntu完美安装espeak支持中文和粤语 不再报错:Full dictionary is not installed for 'zh'
  17. 精美火锅美食特产PPT模板
  18. Android 源码 (AOSP) - 编译 ( Mac )
  19. 服务器抵御ddos攻击的方法
  20. 使用 CloudXNS 接管 Freenom 的免费域名解析,加快国内生效速度!

热门文章

  1. 国外服务器使用CDN加速怎么样
  2. java计算机毕业设计基于安卓Android/微信小程序的婚恋交友系统uni-app
  3. jsp mysql问卷调查_课内资源 - 基于JSP的在线调查问卷系统
  4. 浏览器缓存机制 过期机制和验证机制
  5. ACwing166数独与183靶形数独
  6. ARCGIS中坐标转换及地理坐标、投影坐标的定义(转载)
  7. easyui treegrid实现的两种方式
  8. 计网实验-1_Cisco Package Trace:Basic switch setup
  9. Win7安装VS2008 Error1935
  10. 阿里云ECS学习资源