本节中的示例表达式说明了正确的语法以及 CLEM 可以使用的表达式类型。
简单表达式
下面这个公式可根据字段 After 和 Before 的值导出一个新字段,您的公式也可以像这个公式一样简单。
(After - Before) / Before * 100.0
注意:在引用字段值的时候不需要给字段名加引号。 类似的,如下的表达式只是简单地返回字段 salary 的对数值。
log(salary)
复杂表达式
表达式也可以很长而且非常复杂。 如果两个字段( $KX-Kohonen 和 $KY-Kohonen)的值落在了指定范围之外,如下的表达式将返回 true。 注意:由于此处的字段名包含有特殊字符,因此给它们加上了单引号。
('$KX-Kohonen' >= -0.2635771036148072 and '$KX-Kohonen' <= 0.3146203637123107
and '$KY-Kohonen' >= -0.18975617885589602 and
'$KY-Kohonen' <= 0.17674794197082522) -> T
少数几个函数(如字符串函数)需要使用正确的语法键入几个参数值。 下面例子中使用的函数 subscrs
将返回 produce_ID 字段的第一个字符,用以指明该物品究竟是属于有机、转基因还是常规。 表达式的结果将由
-> `result`
来描述。
subscrs(1,produce_ID) -> `c`
类似的表达式有:
stripchar(`3`,`123`) -> `12`
需要注意的是,字符始终封装在单引号内。
表达式中的组合函数
通常, CLEM 表达式由函数组合组成。 以下函数将 subscr
和 lowertoupper
组合在一起,以返回 produce_ID 的第一个字符并将其转换为大写。
lowertoupper(subscr(1,produce_ID)) -> `C`
同样的表达式还可以简写为:
lowertoupper(produce_ID(1)) -> `C`
另一个经常使用的函数组合是:
locchar_back(`n`, (length(web_page)), web_page)
此表达式在字段 web_page的值中查找字符 `n`
,从字段值的最后一个字符向后读取。 通过同时包含 length
函数,表达式将动态计算当前值的长度,而不是使用静态数字 (例如 7) ,这对于长度小于 7 个字符的值无效。
特殊函数
提供了许多特殊函数 (以 @
符号开头)。 常用的函数包括:
@BLANK('referrer ID') -> T
通常,特殊函数通过组合的方式加以使用,这种方式常用于一次性标记多个字段中的空白值。
@BLANK(@FIELD)-> T
在此 CLEM 文档中讨论了其他示例。 请参阅 CLEM (legacy) 语言参考 以获取更多信息。