通過下面的指令碼案例學習理解兩個函式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學習 資料框的基本操作 今...