1.簡介 在我們數據分析的實際應用中,我們可能會花費大量的時間在數據清洗上,而如果使用 R 裡面自帶的一些函數(base 包的 transform 等),可能會覺得力不從心,或者不是很人性化。好在我們有其他選擇。這裡我們介紹 dplyr 包。 首先載入包: 單表操作函數(one table verb ...
1.簡介
在我們數據分析的實際應用中,我們可能會花費大量的時間在數據清洗上,而如果使用 R 裡面自帶的一些函數(base 包的 transform 等),可能會覺得力不從心,或者不是很人性化。好在我們有其他選擇。這裡我們介紹 dplyr 包。
首先載入包:
install.packages("dplyr") library(dplyr)
單表操作函數(one table verbs)如下:
filter: 保留滿足條件的行 select: 使用列名選出列 arrange: 對數據的所有行排序 mutate: 添加新的變數 summarise: 分類彙總
這些函數的結構如下:
operationName(.data, ...)
operationName _(.data, ..., .dots)
# transmute對已有列進行數據運算並添加為新列刪除原來的列
transmute(.data, ...)
transmute_(.data, ..., .dots)
# slice根據位置選擇行
slice(.data, ...)
slice_(.data, ..., .dots)
參數說明:
- 第一個參數為 data frame 名
- 接下來的參數是指定函數操作的依據(或條件)
- 通常返回的是一個 data frame
為了更好地表述我們的操作,這裡使用一個構造的 data frame。
df <- data.frame(color = c("blue", "black", "blue", "blue", "black"),value = 1:5) View(df)
2.filter--保留滿足條件的行
# filter返回滿足條件的行
filter(.data, ...)
filter_(.data, ..., .dots)
filter 用於選擇滿足條件的觀測(行),第一個參數是 data frame 名字,第二個參數是條件。這裡舉兩個例子,我們對上面構造的 data frame 進行 filter 操作。第一個例子要求選取 color == blue 的觀測; 第二個例子要求選取 value == 1 或者 value == 4 的觀測。
# 選取 `color == blue` 的觀測 > filter(df, color == "blue") ## color value ## 1 blue 1 ## 2 blue 3 ## 3 blue 4 # 選取 `value == 1` 或者 `value == 4 ` 的觀測。 > filter(df, value %in% c(1, 4)) ## color value ## 1 blue 1 ## 2 blue 4
效果如下:
註意: 這裡需要提醒的是,對於多條件的選擇,需要完整條件的,然後使用集合運算符將條件拼接起來。集合運算符有 !、|、&、xor(交補)。條件的判斷符有&g