R數(shù)據(jù)科學chapter7

library(tidyverse)

#多數(shù)其他 R 包使用的是標準數(shù)據(jù)框

#使用 as_tibble() 函數(shù)來完成將數(shù)據(jù)框轉(zhuǎn)換為 tibble:

as_tibble(iris)

#可以通過 tibble() 函數(shù)使用一個向量來創(chuàng)建新 tibble剔难。

#tibble() 會自動重復長度為 1 的輸入恭应,并可以使用剛剛創(chuàng)建的新變量

tibble(

? x = 1:5,

? y = 1,

? z=x^2+ y )

#如果你已經(jīng)非常熟悉 data.frame() 函數(shù)鞭衩,

#那么請注意 tibble() 函數(shù)的功能要少得多:

#它不能改變輸入的類型(例如扒磁,不能將字符串轉(zhuǎn)換為因子)歼捏、變量的名稱磺芭,也不能創(chuàng)建行名稱枫虏。

#可以在 tibble 中使用在 R 中無效的變量名稱(即不符合語法的名稱)作為列名稱盾鳞。

#例如懒鉴, 列名稱可以不以字母開頭诡挂,也可以包含特殊字符(如空格)。

#要想引用這樣的變量临谱,需要 使用反引號 ` 將它們括起來:

tb <- tibble(

? `:)` = "smile",

? ` ` = "space",

? `2000` = "number"

)

tb

#如果要在 ggplot2 和 dplyr 等其他 R 包中使用這些變量璃俗,也需要使用反引號。

#創(chuàng)建 tibble 的另一種方法是使用 tribble() 函數(shù)悉默,

#tribble 是 transposed tibble(轉(zhuǎn)置 tibble) 的縮寫城豁。

#tribble() 是定制化的,可以對數(shù)據(jù)按行進行編碼:

#列標題由公式(以 ~ 開頭) 定義抄课,數(shù)據(jù)條目以逗號分隔钮蛛,這樣就可以用易讀的方式對少量數(shù)據(jù)進行布局:

#我通常會加一條注釋(以 # 開頭的行)來明確指出標題行的位置。

tribble(

? ~x, ~y, ~z,

? #--|--|----

? "a", 2, 3.6,

? "b", 1, 8.5

)

#對比tibble與data.frame

#tibble 和傳統(tǒng) data.frame 的使用方法主要有兩處不同:打印和取子集剖膳。

#打印

#tibble 的打印方法進行了優(yōu)化魏颓,只顯示前 10 行結(jié)果,

#并且列也是適合屏幕的吱晒,這種方式非常適合大數(shù)據(jù)集甸饱。

#除了打印列名,tibble 還會打印出列的類型仑濒,這項非常棒的功能借鑒于 str() 函數(shù)叹话。

tibble(

? a = lubridate::now() + runif(1e3) * 86400, b = lubridate::today() + runif(1e3) * 30, c = 1:1e3,

? d = runif(1e3),

? e = sample(letters, 1e3, replace = TRUE)

)

#有時需要比默認顯 示更多的輸出,這時就要設置幾個選項墩瞳。

#可以明確使用 print() 函數(shù)來打印數(shù)據(jù)框驼壶,并控制打印的行數(shù)(n)和顯示的寬度 (width)。

#width = Inf 可以顯示出所有列

nycflights13::flights %>%

? print(n = 10, width = Inf)

#還可以通過設置以下選項來控制默認的打印方式喉酌。

#? options(tibble.print_max = n, tibble.pring_min = m):如果多于 m 行热凹,則只打印出 n 行。

#? options(tibble.print_min = Inf) 表示總是打印所有行泪电。

#? options(tibble.width = Inf) 表示總是打印所有列般妙,不考慮屏幕的寬度。

#最后一種方式是使用 RStudio 內(nèi)置的數(shù)據(jù)查看器相速,以滾動方式查看整個數(shù)據(jù)集碟渺。

nycflights13::flights %>%

? View()

#取子集

#如果想要提取單個變量,那么就需 要一些新工具突诬,如 $ 和 [[苫拍。

#[[ 可以按名稱或位置提取變量;

#$ 只能按名稱提取變量芜繁,但可以減少一些輸入:

#runif()函數(shù)用于生成從0到1區(qū)間范圍內(nèi)的服從正態(tài)分布的隨機數(shù)

#rnorm()函數(shù)產(chǎn)生一系列服從正態(tài)分布的隨機數(shù),隨機數(shù)個數(shù)绒极,均值和標準差都可以設定骏令。

df <- tibble(

? x = runif(5),

? y = rnorm(5)

)

# 按名稱提取

df$x

df[["x"]]

# 按位置提取

df[[1]]

#在管道中使用這些提取操作,需要使用特殊的占位符 .

df %>% .$x

df %>% .[["x"]]

#與 data.frame 相比集峦,tibble 更嚴格:

#它不能進行部分匹配伏社,如果想要訪問的列不存在抠刺,它會生成一條警告信息塔淤。

#與舊代碼進行交互

#有些比較舊的函數(shù)不支持 tibble。

#如果遇到這種函數(shù)速妖,可以使用 as.data.frame() 函數(shù)將tibble 轉(zhuǎn)換回 data.frame:

class(as.data.frame(tb))

#有些舊函數(shù)不支持 tibble 的主要原因在于 [ 的功能高蜂。

#對于 R 基礎包中的數(shù)據(jù)框,[ 有時返回一個數(shù)據(jù)框罕容, 有時返回一個向量备恤。

#對于 tibble,[ 則總是返回另一個 tibble锦秒。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末露泊,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子旅择,更是在濱河造成了極大的恐慌惭笑,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件生真,死亡現(xiàn)場離奇詭異沉噩,居然都是意外死亡,警方通過查閱死者的電腦和手機柱蟀,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進店門川蒙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人长已,你說我怎么就攤上這事畜眨。” “怎么了术瓮?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵胶果,是天一觀的道長。 經(jīng)常有香客問我斤斧,道長早抠,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任撬讽,我火速辦了婚禮蕊连,結(jié)果婚禮上悬垃,老公的妹妹穿的比我還像新娘。我一直安慰自己甘苍,他們只是感情好尝蠕,可當我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著载庭,像睡著了一般看彼。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上囚聚,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天靖榕,我揣著相機與錄音,去河邊找鬼顽铸。 笑死茁计,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的谓松。 我是一名探鬼主播星压,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼鬼譬!你這毒婦竟也來了娜膘?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤优质,失蹤者是張志新(化名)和其女友劉穎竣贪,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體盆赤,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡贾富,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了牺六。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片颤枪。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖淑际,靈堂內(nèi)的尸體忽然破棺而出畏纲,到底是詐尸還是另有隱情,我是刑警寧澤春缕,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布盗胀,位于F島的核電站,受9級特大地震影響锄贼,放射性物質(zhì)發(fā)生泄漏票灰。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望屑迂。 院中可真熱鬧浸策,春花似錦、人聲如沸惹盼。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽手报。三九已至蚯舱,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間掩蛤,已是汗流浹背枉昏。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留盏档,地道東北人凶掰。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓燥爷,卻偏偏與公主長得像蜈亩,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子前翎,可洞房花燭夜當晚...
    茶點故事閱讀 44,577評論 2 353

推薦閱讀更多精彩內(nèi)容