99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
2018-11-03 閱讀量: 844
R里的常用創(chuàng)建函數(shù)

算術(shù)運(yùn)算符: +、 -、 *、 /、 ^

它們都是向量化的,使用所謂的“循環(huán)法則”。如果一個(gè)參數(shù)比另一個(gè)參數(shù)短,那么前

者會(huì)自動(dòng)擴(kuò)展到同樣的長(zhǎng)度。當(dāng)某個(gè)參數(shù)是單個(gè)數(shù)值時(shí),這種方式是最有效的: air_

time / 60、 hours * 60 + minute 等。

算術(shù)運(yùn)算符的另一用途是與我們后面將很快學(xué)到的聚集函數(shù)結(jié)合起來(lái)使用。例如, x /

sum(x) 可以計(jì)算出各個(gè)分量在總數(shù)中的比例, y – mean(y) 可以計(jì)算出分量與均值之間

的差值。

模運(yùn)算符: %/% 和 %%

%/%(整數(shù)除法)和 %%(求余)滿足 x == y * (x %/% y) + (x %% y)。模運(yùn)算非常好

用,因?yàn)樗梢圆鸱终麛?shù)。例如,在航班數(shù)據(jù)集中,你可以根據(jù) dep_time 計(jì)算出 hour

和 minute:

transmute(flights,
dep_time,
hour = dep_time %/% 100,
minute = dep_time %% 100
)
#> # A tibble: 336,776 × 3
#> dep_time hour minute
#> <int> <dbl> <dbl>
#> 1 517 5 17
#> 2 533 5 33
#> 3 542 5 42
#> 4 544 5 44
#> 5 554 5 54
#> 6 554 5 54
#> # ... with 3.368e+05 more rows
對(duì)數(shù)函數(shù): log()、 log2() 和 log10()

在處理取值范圍橫跨多個(gè)數(shù)量級(jí)的數(shù)據(jù)時(shí),對(duì)數(shù)是特別有用的一種轉(zhuǎn)換方式。它還可以

將乘法轉(zhuǎn)換成加法,我們將在本書的第四部分中介紹這個(gè)功能。

其他條件相同的情況下,我推薦使用 log2() 函數(shù),因?yàn)楹苋菀讓?duì)其進(jìn)行解釋:對(duì)數(shù)

標(biāo)度的數(shù)值增加 1 個(gè)單位,意味著初始數(shù)值加倍;減少 1 個(gè)單位,則意味著初始數(shù)值

減半。

偏移函數(shù)

lead() 和 lag() 函數(shù)可以返回一個(gè)序列的領(lǐng)先值和滯后值。它們可以計(jì)算出序列的移動(dòng)

差值(如 x – lag(x))或發(fā)現(xiàn)序列何時(shí)發(fā)生了變化(x != lag(x))。它們與 group_by()

組合使用時(shí)特別有用,你很快就會(huì)學(xué)到 group_by() 這個(gè)函數(shù):

(x <- 1:10)
#> [1] 1 2 3 4 5 6 7 8 9 10
lag(x)
#> [1] NA 1 2 3 4 5 6 7 8 9
lead(x)
#> [1] 2 3 4 5 6 7 8 9 10 N

R 提供了計(jì)算累加和、累加積、累加最小值和累加最大值的函數(shù): cumsum()、 cumprod()、

commin() 和 cummax(); dplyr 還提供了 cummean() 函數(shù)以計(jì)算累加均值。如果想要計(jì)算

滾動(dòng)聚合(即滾動(dòng)窗口求和),那么可以嘗試使用 RcppRoll 包:

x
#> [1] 1 2 3 4 5 6 7 8 9 10
cumsum(x)
#> [1] 1 3 6 10 15 21 28 36 45 55
cummean(x)
#> [1] 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5

邏輯比較: <、 <=、 >、 >= 和 !=

如果需要進(jìn)行一系列復(fù)雜的邏輯運(yùn)算,那么最好將中間結(jié)果保存在新變量中,這樣就可

以檢查是否每一步都符合預(yù)期。

排秩

排秩函數(shù)有很多,但你應(yīng)該從 min_rank() 函數(shù)開始,它可以完成最常用的排秩任務(wù)

(如第一、第二、第三、第四)。默認(rèn)的排秩方式是,最小的值獲得最前面的名次,使用

desc(x) 可以讓最大的值獲得最前面的名次:

y <- c(1, 2, 2, NA, 3, 4)
min_rank(y)
#> [1] 1 2 2 NA 4 5
min_rank(desc(y))
#> [1] 5 3 3 NA 2 1

如果 min_rank() 無(wú)法滿足需要,那么可以看一下其變體 row_number()、 dense_rank()、

percent_rank()、 cume_dist() 和 ntile()??梢圆榭此鼈兊膸椭?yè)面以獲得更多信息:

row_number(y)
#> [1] 1 2 3 NA 4 5
dense_rank(y)
#> [1] 1 2 2 NA 3 4
percent_rank(y)
#> [1] 0.00 0.25 0.25 NA 0.75 1.00
cume_dist(y)
#> [1] 0.2 0.6 0.6 NA 0.8 1.0
0.0000
2
關(guān)注作者
收藏
評(píng)論(0)

發(fā)表評(píng)論

暫無(wú)數(shù)據(jù)
推薦帖子