158****6283

2020-06-17   阅读量: 877

基础函数

扫码加入数据分析学习群

(一),M函数

1.M函数的注释:

单行注释符为//

多行注释符为/*…..*/

2.M函数基本表达式:

let…in…结构:

let用于封装计算结果,并为计算结果命名。

in用于显示结果

eg:

let
源 = #table(
{"客户id","客户名称"},
{
{"aa","赵大"},
{"bb","王二"}
}
)
in

#通过let语句将#table()函数的计算结果封装到名叫源的变量中(table中包含两个字段名和两行记录---隐式字段表),再通过in语句显示Source变量的内容:

3.M函数中,记录嵌套表的写法

let
源 = [
订单id="b",
客户id="bb",
订单金额=200,
客户表=#table(
{"客户id","客户名称"},
{
{"bb","王二"}
}
)
]
in

#上面的M函数中包含四个字段:订单id,客户id,订单金额,客户表;其中字段“客户表”是一个表结构

M函数返回结果如下:

其中客户表如下:

4.M函数基本变量类型

#M函数严格区分大小写,数据类型都要小写,如下:

(二)自定义函数

(参数1,参数2,参数3……) => 函数运算表达式

—>通过调用函数得到的函数返回值称为函数值

(三)If表达式

通过对逻辑条件进行判断来对两个表达式进行选择

练习:用自定义函数与判断语句,创建由三个参数构成的自定义函数

当第三个参数为1是做加法,为2时做减法,为3时做乘法,为4时做除法运算,除此之外的参数值时返回“参数错误”提示

(a as number,b as number,selcal as number)=>
let
selcal = if selcal=1 then "a+b"
else if selcal=2 then "a-b"
else if selcal=3 then "a*b"
else if selcal=4 then "a/b"
else "参数错误"
in
selcal

调用过程如下:

当a=4,b=4,selcal=2时,返回a-b,当selcal分别为1,3,4时,对应返回a+b,a*b,a/b

(四)结构化数据

1.列表

列表是扩在花括号中的一组数据,列表中每个数据都有属于自己的序号以便自己能够被检索到,列表中的数据序号从0开始按照排列顺序依次整数递增,大列表内还可以嵌套子列表、记录等。花括号除了用来括起列表内的所有数据还用来指定列表内数据的序号,通过指定数据序号可以从列表内找到并获取所需的数据值。

2.记录

记录用来定义字段和给字段赋值,一个字段由字段名以及字段内的值组成,字段名是唯一 的文本值,是字段的标识符。字段名可以不用引号引用,字段名有两种表达形式: 
> 不加""的表达形式、例如OrderID
> 加#和""的表达形式、例如#"Today's data is:"
记录中的内容写在[]括号内,[]括号同样用于在记录中取特定字段的值。

3.表

(1)表是由行列数据构成的,可以使用隐式或显示方式定义字段(列)的数据类型。使用 #table建表时,可以使用列表或者记录来定义列名,并使用嵌套列表来定义表中的数据,嵌 套列表的大列表内包含所有定义单行用的子列表,而每个子列表则用来定义一行数据。花括 号{}可以用来索引查找指定行的数据。

(2)表是由行列数据构成的,可以使用隐式或显示方式定义字段(列)的数据类型。使用 #table建表时,可以使用列表或者记录来定义列名,并使用嵌套列表来定义表中的数据,嵌 套列表的大列表内包含所有定义单行用的子列表,而每个子列表则用来定义一行数据。花括号{}可以用来索引查找指定行的数据。

(四)小技巧

1.记录中的内容写在[]括号内,[]括号同样用于在记录中取特定字段的值。

2.列表是扩在花括号{}中的一组数据,{}可以用来索引查找指定行的数据。

源自——1309_1565582599

添加CDA认证专家【维克多阿涛】,微信号:【cdashijiazhuang】,提供数据分析指导及CDA考试秘籍。已助千人通过CDA数字化人才认证。欢迎交流,共同成长!
25.2129 4 2 关注作者 收藏

评论(0)


暂无数据

推荐课程