R语言中对象的模式、类与使用详解
1. 表达式模式
表达式模式与列表模式类似,主要用于处理类或名称等模式的对象。表达式模式的对象可以像列表一样进行子集操作,并且在创建时不会被求值。它使用与原子模式相同的三个函数: expression()
、 as.expression()
和 is.expression()
。
- expression()
函数 :用于创建输入对象的列表,对象间用逗号分隔,且可以是任何模式。使用 eval()
函数可以对表达式进行求值,不过 eval()
仅会对表达式中的最后一个对象求值。如果最后一个参数由原始函数组成, eval()
会返回结果;若函数或表达式不是原始的, eval()
则返回表达式,此时需要再次使用 eval()
来求值。
> a.exp = expression(sin(1:5/180*pi))
> a.exp
expression(sin(1:5/180 * pi))
> eval(a.exp)
[1] 0.01745241 0.03489950 0.05233596 0.06975647 0.08715574
> a.exp = expression(sin(1:5/180*pi),a.call)
> a.exp
expression(sin(1:5/180