pick - 脚本和图表函数
pick 函数用于返回列表中的第 n 个表达式。
语法:
pick(n, expr1[ , expr2,...exprN])
返回数据类型: 双
参数 | 描述 |
---|---|
n | n 是介于 1 和 N 之间的整数。 |
示例 | 结果 |
---|---|
pick( N, 'A','B',4, 6 ) | 如果N = 2,则返回 B 如果N = 3,则返回 4 |
示例 - 使用 pick 向产品分配标签
概览
数据集包含产品数据。您希望根据类别代码为产品分配类别标签。
打开数据加载编辑器,并将下面的加载脚本添加到新部分。
加载脚本包含:
加载到名为 Example 的数据表中的数据集。
数据表中有以下字段:
ProductID
ProductName
CategoryCode
加载脚本
Example:
LOAD * INLINE [
ProductID, ProductName, CategoryCode
1, "Laptop", 1
2, "Headphones", 2
3, "Printer", 3
4, "Smartphone", 1
5, "Tablet", 1
];
结果
加载数据并打开工作表。创建新表并将这些字段添加为维度:
ProductID
ProductName
CategoryCode
创建以下度量:
=Pick(CategoryCode, 'Electronics', 'Accessories', 'Office Equipment'),从列表中返回有效表达式。
ProductID | ProductName | CategoryCode | Pick(CategoryCode, 'Electronics', 'Accessories', 'Office Equipment') |
---|---|---|---|
1 | Laptop | 1 | Electronics |
2 | Headphone | 2 | Accessories |
3 | Printer | 3 | Office Equipment |
4 | Smartphone | 1 | Electronics |
5 | Tablet | 1 | Electronics |
pick 函数从 CategoryCode 数值字段返回与相应索引关联的值列表。例如,标签 Electronics 是函数的第一个参数,将为所有 CategoryCode 为 1 的产品返回该参数。
示例 - 使用 pick 分配地区标签
概览
数据集包含国家和地区代码。您希望根据地区代码为国家/地区分配地区标签。
打开数据加载编辑器,并将下面的加载脚本添加到新部分。
加载脚本包含:
加载到名为 Example 的数据表中的数据集。
数据表中有以下字段:
Country
RegionCode
加载脚本
Example:
LOAD * INLINE [
Country, RegionCode
"USA", 1
"Canada", 1
"Germany", 2
"Japan", 3
"Australia", 4
];
结果
加载数据并打开工作表。创建新表并将这些字段添加为维度:
Country
RegionCode
创建以下度量:
=Pick(RegionCode, 'North America', 'Europe', 'Asia', 'Australia'),用于从列表中返回有效项目。
Country | RegionCode | Pick(RegionCode, 'North America', 'Europe', 'Asia', 'Australia') |
---|---|---|
Australia | 4 | Australia |
Canada | 1 | North America |
Germany | 2 | Europe |
Japan | 3 | Asia |
USA | 1 | North America |
pick 函数从 RegionCode 数值字段返回与相应索引关联的值列表。例如,标签 North America 是函数的第一个参数,将为所有 RegionCode 为 1 的国家/地区返回该参数。
示例 - 组合 pick 和 match 来转换替代文本匹配项列表
概览
这个高级场景描述了如何有效地使用 pick 和 match 函数的组合来在线映射文本匹配项。在程序设计中,其作用类似于 Case 语句。该场景通过将国家名称映射到地区等效名称来探索此功能,同时为任何以前未映射的 Country 名称提供默认 Region 值。
打开数据加载编辑器,并将下面的加载脚本添加到新部分。
加载脚本包含:
加载到名为 Countries 的数据表中的数据集。
数据表有一个名为 Country 的字段。
加载脚本
Countries:
LOAD * INLINE [
Country
"USA"
"Canada"
"Germany"
"Japan"
"Australia"
"South Africa"
];
结果
加载数据并打开工作表。创建新表并将这些字段添加为维度:
Country
RegionCode
创建以下度量:
=Pick(1+match(Country,'USA','Canada','Germany','Japan','Australia'), 'Unmapped', 'North America', 'North America', 'Europe', 'Asia', 'Australia')
match 函数将从 1 = ‘USA’、2 = ‘Canada’ 开始,依次返回所提供的逗号分隔替代项中的索引匹配项。如果未找到匹配值,则返回零。然后,该结果会以 1 递增,并馈送至 pick 函数,这样,如果找不到匹配结果则为 1 = default value、2 = ‘USA’、3 = ‘Canada’ 等。
这种 Match 和 Pick 函数调用组合将把匹配的 Country 名称解码为等效的 Region 名称。任何未映射的 Country 值都将返回默认的 Region 值 Unmapped。
Country | Pick(1+match(Country,'USA','Canada','Germany','Japan','Australia'), 'Unmapped', 'North America', 'North America', 'Europe', 'Asia', 'Australia') |
---|---|
Australia | Australia |
Canada | North America |
Germany | Europe |
Japan | Asia |
South Africa | Unmapped |
USA | North America |