10 非标准计算
10.1 定义
在R中不仅可以访问函数参数的值,还可以访问对参数进行计算的表达式代码,这就是非标准计算(NSE)
10.2 例子
substitute(expr, env)捕获用来计算的表达式expr,并用在环境env中可能存在的可以用于替换的变量值将表达式做替换。例:
10.3 小知识点
substitute()经常与deparse()一起使用,deparse()以substitute()的结果为参数并把它转换成字符向量(substitute()的结果是name类型的)quote()与substitute()行为相同,除了它不做替换操作,quote()与eval()是对立的eval(expr, envir, enclos)可以在指定环境中计算表达式,envir参数位置不一定是环境,也可以填列表或数据框eval()函数的第三个参数控制eval()在环境envir中找不到变量名时去哪里找,eval()首先会在enclos参数中找,再在enclos参数的父环境中找。list2env()可以将一个列表转换成具有显式父环境的环境,这里希望在函数的调用环境中查找。R中的
pairlist数据类型相当于python中的dictionary