範例 - ARRAYLEN 和 ARRAYELEMENTAT 函式

本範例說明下列函式:

  • ARRAYLEN:傳回陣列中元素從 1 開始的索引值。請參閱 ARRAYLEN 函式
  • ARRAYELEMENTAT:根據從 0 開始的索引參數傳回陣列元素。請參閱 ARRAYELEMENTAT 函式
  • ARRAYSORT - 傳回按照遞增或遞減順序排序的陣列。請參閱 ARRAYSORT 函式一文。

來源:

以下是一些學生測驗成績。個別成績儲存在 Scores 資料欄。您想要:

  1. 標記出未參加四次測驗的學生。
  2. 計算每位學生的分數範圍。
LastNameFirstNameScores
AllenAmanda[79, 83,87,81]
BellBobby[85, 92, 94, 98]
CharlesCameron[88,81,85]
DudleyDanny[82,88,81,77]
EllisEvan[91,93,87,93]

轉換:

首先,您想標記出未參加所有四次測驗的學生:

derive type:single value:IF(ARRAYLEN(Scores) < 4,"incomplete","") as:'Error'

只有 Cameron Charles 被標記出來。

以下的轉換作業會由最高到最低分數排序陣列值:

set column: Scores value: ARRAYSORT(Scores, 'descending')

下列轉換指令會擷取每個學生測驗成績中的第一個 (最高分) 和最後一個 (最低分) 值 (如果有參加四次測驗的話):

derive type:single value:ARRAYELEMENTAT(Scores,0) as:'highestScore'

derive type:single value:ARRAYELEMENTAT(Scores,3) as:'lowestScore'

提示:如果 Error 資料欄包含空值,您也可以產生 Scores4 資料欄。如果 ARRAYELEMENTAT 函式的陣列中沒有任何值,就會傳回空值,在這個範例中是表示元素 (測驗成績) 數量不足。

您現在可以追蹤測驗成績的變化:

derive type:single value:SUBTRACT(highestScore,lowestScore) as:'Score_range'


結果:

LastNameFirstNameScoresErrorlowestScorehighestScoreScore_range
AllenAmanda[87,83,81,79] 79878
BellBobby[98,94,92,85] 859813
CharlesCameron[88,85,81]incomplete 88
DudleyDanny[88,82,81,77] 778811
EllisEvan[93,93,91,87] 87936
本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Google Cloud Dataprep 說明文件
需要協助嗎?請前往我們的支援網頁