我在一个表中有一个参数'type',它可以有多个值,如下所示-
- 人类
- 黑猩猩
- 红猩猩
我有3列与表中的每种类型相关-
- 人的身高、体重、寿命
- 黑猩猩身高、体重、寿命
- 猩猩身高、猩猩体重、猩猩寿命
因此,如果我选择类型为人类,则快速瞄准仪仪表板应仅显示三列-
- 人的身高、体重、寿命
并且不应显示以下列-
- 黑猩猩身高、体重、寿命
- 猩猩身高、猩猩体重、猩猩寿命
我创建了参数类型,在添加计算字段中,我试图使用ifelse
根据如下所选的参数选择列-
ifelse(${type}='human',{human_avg_height}, {human_avg_weight}, {human_avg_lifespan},{function})
我也试过-
ifelse(${type}='human',{{human_avg_height}, {human_avg_weight}, {human_avg_lifespan},{function}})
和-
ifelse(${type}='human',{human_avg_height, human_avg_weight, human_avg_lifespan},{function}})
但这些都不起作用。我做错了什么?
实现这一点的一种方法是使用三个不同的计算字段,一个用于所有高度,一个表示重量,另一个表示寿命。高度应该是这样的:
ifelse(
${type}='human',{human_avg_height}, ifelse(
${type}='chimpanzee', { chimpanzee_avg_height}, ifelse(
${type}='orangutan',{ orangutan_avg_height},
NULL
)))
为权重和寿命制作另一个计算字段,然后将这些计算字段添加到表中,并按类型进行筛选。
要使查看者清楚地了解存在哪些数据,请编辑可视化的标题以包括类型:
${type} Data
您必须使用类型为的ifelse为每个度量创建一个计算字段来选择正确的值,但不必像skabo那样创建内部ifelse,ifelse语法为ifelse(if, then [, if, then ...], else)
,因此您可以定义计算字段如下:
avg_height = ifelse(${type}='human', {human_avg_height}, ${type}='chimpanzee', {chimpanzee_avg_height},${type}='orangutan', {orangutan_avg_height}, NULL)
avg_weight = ifelse(${type}='human', {human_avg_weight}, ${type}='chimpanzee', {chimpanzee_avg_weight},${type}='orangutan', {orangutan_avg_weight}, NULL)
avg_lifespan = ifelse(${type}='human', {human_avg_lifespan}, ${type}='chimpanzee', {chimpanzee_avg_lifespan},${type}='orangutan', {orangutan_avg_lifespan}, NULL)
然后在视觉效果中使用这些计算字段。