Qlik函式學習之rand和round

2021-08-20 18:53:20 字數 1585 閱讀 1792

通過下面的指令碼案例學習理解兩個函式round與 rand

transactions:
round(1000*rand()*rand()*rand()) as sales,
recno() as transid
while rand()<0.5 or iterno()=1;
round() 函式:

round (x[, step[, offset]]) 

有3個引數 x  step   offset  其中x為必須

tips:在沒有設定  step 和 offset 時 分別預設為 1 和 0

通過查詢函式幫助手冊有以下案例:

round( 3.8 )

返回 4

round( 3.8, 4 )

返回 4

round( 2.5 )

返回 3

。 向上取整, 因為

2.5

正好是預設步進間隔的一半。

round( 2, 4 )

返回 4

。 向上取整, 因為

2 正好是步進間隔

4 的一半。

round( 2, 6 )

返回 0

。 向下取整, 因為

2 小於步進間隔

6 的一半。

round( 3.88 , 0.1 )

返回 3.9

round( 3.88 , 5 )

返回 5

round( 1.1 , 1 , 0.5 )

返回 1.5

針對其中幾個我們進一步分析:

在round(3.8)中返回結果為4  (沒有設定step 和 offset 則 它們分別預設為 1,0)

當沒指定x值的時候我們可以判定該函式的返回值  應該是:-1,

0,1 ,2 ,3,4…這樣的整數序列中的乙個數。

可能值為什麼會是這樣乙個序列呢 ? 因為 step 步長為1  當 為round(-3.8)時會返回 -4 

所以當x指定為3.8時 函式向上取整為4

round(3.8,4)  此時設定了step=4  offset 未指定則繼續預設為0  

所以在指定了step為4時  不考慮x則返回值可能是:-4,

0,4,8,12…這樣乙個序列

當x指定為 3.8 時 更靠近系列中的數字4  則向上取整返回4   (往比x更大的數上取  叫向上取整,往比x更小的數取叫向下取整) 

何時該向上取整,何時向下取整?

結論 步經間隔一半時,向上取整,步經間隔一半以下的向下取整

。最後的

round( 1.1 , 1 , 0.5 ) 

通過這樣指定後 

若不考慮x值則返回值可能值為這樣乙個序列:   -1.5,-0.5,

0.5,1.5,2.5,3.5,4.5…

1.1 更靠近 1.5  而不是 0.5  所以最後返回結果是 1.5 

在上面的指令碼中 用到了rand 函式,我們知道系統每呼叫一次rand()就會產生乙個0-1之間的乙個數,所以load的每一條記錄中使用rand()獲取到的值是不同的,則在最後的while中和前面的rand()的值也是不同的。

學習R之函式和作用域

鍵入乙個函式的名稱,將顯示其執行的 以下是 rt 函式,該函式將生成基於 t 分布的隨機數 rt function n,df,ncp rt 函式需要傳入三個引數 n 是要產生的隨機數的數目,df 是自由度值,ncp 是乙個可選的非中心引數。在 r 中,函式中計算的最後乙個值將自動返回,並不需要顯式地...

OpenCV函式學習之cvLUT

何為lut,就是指顯示查詢表 look up table lut look up table 實際上就是一張畫素灰度值的對映表,它將實際取樣到的畫素灰度值經過一定的變換如閾值 反轉 二值化 對比度調整 線性變換等,變成了另外乙個與之對應的灰度值,這樣可以起到突出影象的有用資訊,增強影象的光對比度的作...

環境列表 R學習 環境和函式

r語言學習貼往期回顧 r學習 r for data science 一 r學習 r for data science 二 r學習 r for data science 三 r學習 r for data science 四 r學習 r for data science 五 r學習 資料框的基本操作 今...