R語言擴充套件包dplyr 資料清洗和整理

2021-07-30 05:50:54 字數 3670 閱讀 1389

getting and cleaning data

也可以載入swirl包,載入課getting and cleaning data跟著學習。

如下:

library(swirl)

install_from_swirl("getting and cleaning data")

swirl()

此文主要是參考r自帶的簡介:introduce to dplyr

1、示範資料

> library(nycflights13)

> dim(flights)

[1] 336776     16

> head(flights, 3)

source: local data frame [3 x 16]

year month day dep_time dep_delay arr_time arr_delay carrier tailnum flight origin dest air_time

1 2013     1   1      517         2      830        11      ua  n14228   1545    ewr  iah      227

2 2013     1   1      533         4      850        20      ua  n24211   1714    lga  iah      227

3 2013     1   1      542         2      923        33      aa  n619aa   1141    jfk  mia      160

variables not shown: distance (dbl), hour (dbl), minute (dbl)

2、將過長的資料整理成友好的tbl_df資料

> flights_df 

> flights_df

3、篩選filter()

> filter(flights_df, month == 1, day == 1)

source: local data frame [842 x 16]

year month day dep_time dep_delay arr_time arr_delay carrier tailnum flight origin dest air_time

1  2013     1   1      517         2      830        11      ua  n14228   1545    ewr  iah      227

2  2013     1   1      533         4      850        20      ua  n24211   1714    lga  iah      227

篩選出month=1和day=1的資料

同樣效果的,

flights_df[flights_df$month == 1 & flights_df$day == 1, ]
4、選出幾行資料slice()

slice(flights_df, 1:10)
5、排列arrange()

>arrange(flights_df, year, month, day)
將flights_df資料按照year,month,day的公升序排列。 降序

>arrange(flights_df, year, desc(month), day)
r語言當中的自帶函式

flights_df[order(flights$year, flights_df$month, flights_df$day), ]

flights_df[order(desc(flights_df$arr_delay)), ]

6、選擇select()

通過列名來選擇所要的資料

select(flights_df, year, month, day)
選出三列資料

使用:符號

select(flights_df, year:day)
使用-來刪除不要的列表

select(flights_df, -(year:day))
7、變形mutate()

產生新的列

> mutate(flights_df,

+        gain = arr_delay - dep_delay,

+        speed = distance / air_time * 60)

8、彙總summarize()

> summarise(flights,

+           delay = mean(dep_delay, na.rm = true)

求dep_delay的均值 

9、隨機選出樣本

sample_n(flights_df, 10)
隨機選出10個樣本

sample_frac(flights_df, 0.01)
隨機選出1%個樣本

10、分組group_py()

by_tailnum 

#確定組別為tailnum,賦值為by_tailnum

delay

count = n(),

dist = mean(distance, na.rm = true),

delay = mean(arr_delay, na.rm = true))

#彙總flights裡地tailnum組的分類數量,及其組別對應的distance和arr_delay的均值

結果都需要通過賦值儲存

a1 

a2 a3

arr = mean(arr_delay, na.rm = true),

dep = mean(dep_delay, na.rm = true))

a4 30 | dep > 30)

11、引入鏈結符%>%

使用時把資料名作為開頭,然後依次對資料進行多步操作:

flights %>%

group_by(year, month, day) %>%

select(arr_delay, dep_delay) %>%

summarise(

arr = mean(arr_delay, na.rm = true),

dep = mean(dep_delay, na.rm = true)

) %>%

filter(arr > 30 | dep > 30)

前面都免去了資料名

若想要進行更多地了解這個包,可以參考其自帶的說明書(60頁):dplyr

R語言擴充套件包dplyr 資料清洗和整理

getting and cleaning data 也可以載入swirl包,載入課getting and cleaning data跟著學習。如下 library swirl install from swirl getting and cleaning data swirl 此文主要是參考r自帶的...

R語言筆記 用dplyr包處理資料框

排列個案 arrange 選擇特定變數構成新的資料框 select 幾個資料框拆分操作的簡單辨析 計算變數 mutate 計算統計量 summarise 拆分資料框 group by 傳遞符 dplyr包提供了統一形式的函式用於運算元據框,更為簡潔高效。install.packages dplyr ...

關於R語言字元型資料清洗問題

最近做乙個 關於投資者是否再次投資的專案,需要針對客戶匯出的資料進行清洗後建模分析,我目前選擇的模型是xgboost,貌似資料必須全是numeric。資料結構如下 在這個裡面,我們需要做的是將第一列裡面的 是 替換為1,第四列 第七列 第八列的字元也替換為數字。具體需求如下 平台標籤替換 0 na ...