1. 程式人生 > 其它 >使用tibble實現簡單資料框(tibble、data.frame)

使用tibble實現簡單資料框(tibble、data.frame)

使用tibble實現簡單資料框

1.1 建立tibble

as_tibble(iris)

可以通過 tibble() 函式使用一個向量來建立新 tibbletibble() 會自動重複長度為 1 的輸

入,並可以使用剛剛建立的新變數,如下所示:

tibble(

x = 1:5,

y = 1,

z = x ^ 2 + y

)

tibble() 函式的功能要少得多:它不能改變輸入的型別(例如,不能將字串轉換為因子)、變數的名稱,也不能建立行名稱。

可以在 tibble 中使用在 R 中無效的變數名稱(即不符合語法的名稱)作為列名稱。例如,

列名稱可以不以字母開頭,也可以包含特殊字元(如空格)。要想引用這樣的變數,需要

使用反引號 ` 將它們括起來:

tb <- tibble(

`:)` = "smile",

` ` = "space",

`2000` = "number"

)

tb

tribble transposed tibble(轉置 tibble)的縮寫。tribble() 是定製化的,可以對資料按行進行編碼:列標題由公式(以 ~ 開頭)定義,資料條目以逗號分隔,這樣就可以用易讀的方式對少量資料進行佈局:

tribble(

~x, ~y, ~z,

#--|--|----

"a", 2, 3.6,

"b", 1, 8.5

)

1.2 建立資料框data.frame

資料框是一種表格式的資料結構,資料框旨在模擬資料集,與其他統計軟體例如

SASSPSS中的資料集一致.

資料集通常由資料構成一個舉行陣列,行表示觀測,列表示變數,不同的行業對於資料集的行和列叫法不同.

資料框實際上是一個列表,列表中的元素是向量,這些向量構成資料框的列,每一個列必須具有相同的長度,所以資料框是矩形結構,而且資料框的列必須命名.

矩陣與資料框

資料框形狀上很像矩陣

資料框是比較規則的列表

矩陣必須為同一個資料型別

資料框每一列必須同一型別,每一行可以不同

iris資料集是一個數據框,其他還有mtcars,rock

資料框可以通過data.frame()函式建立,類似於excle中的表格

資料框的索引,state[1]輸出第一列,state[c(2,4)]

輸出第2列和第4列,state[-c(2,4)]刪除第2列和第4

通過名字索引,通過這個符號$索引

women資料集裡面有身高體重

plot()函式可以顯示散點圖

利用lm()函式進行線性迴歸,直接給出列名即可

lm(weight ~height,data=women)與下面的一句話作用一樣

attach()載入資料框,之後只需要輸入列名就可以顯示資料了

rownames(mtcars)顯示資料集mtcars的行名,colnames(mtcars)顯示資料集mtcars的列名,並通過行名、列名查詢顯示

detach(mtcars)函式可以去除此資料框

with()函式載入資料框並顯示,不需要這個符號$

1.2.1資料框操作--基本資料管理

R基本資料管理--建立變數,變數重編碼和重新命名

資料框增加列,可以使用符號$

自定義資料框

賦值操作,變數的重編碼

賦值並判斷,也就是變數的重編碼,主要使用中括號[]

重新命名

通過索引重新命名

2對比tibbledata.frame

tibble 和傳統 data.frame 的使用方法主要有兩處不同:列印和取子集。

2.1 列印

tibble 的列印方法進行了優化,只顯示前 10 行結果,並且列也是適合螢幕的,這種方式非

常適合大資料集。除了列印列名,tibble 還會打印出列的型別,這項非常棒的功能借鑑於str() 函式。

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() 函式來列印資料框,並控制列印的行數(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) 表示總是列印所有列,不考慮螢幕的寬度。

2.2 取子集

$ [[[[ 可以按名稱或位置提取變數;$ 只能按名稱提取變數,但可以減少一些輸入:

df <- tibble(

x = runif(5),

y = rnorm(5)

)

# 按名稱提取

df$x

df[["x"]]

# 按位置提取

df[[1]]

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

df %>% .$x

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

本文來自部落格園,作者:zhang-X,轉載請註明原文連結:https://www.cnblogs.com/YY-zhang/p/15577311.html