R for Data Science(筆記) ---數(shù)據(jù)變換(filter使用)

R for Data Science

tidy流處理數(shù)據(jù)越來越流行,我想這與管道符%>% 的使用,數(shù)據(jù)處理動詞化,有著很重要的關(guān)系。

用最少的時間,解決最重要的、最常見的問題,我把這稱為是高效;剩余的難點,我把其稱為提高。

filter動詞的使用

首先需要明確的是

filter針對的是的操作, select是針對列的操作

在這個基礎(chǔ)之上,展開實戰(zhàn)

使用nycflights13 包中的數(shù)據(jù)進行演示

1. 單獨提出某一行

觀察數(shù)據(jù)特點

flights
#> # A tibble: 336,776 x 19
#>    year month   day dep_time sched_dep_time dep_delay arr_time sched_arr_time
#>   <int> <int> <int>    <int>          <int>     <dbl>    <int>          <int>
#> 1  2013     1     1      517            515         2      830            819
#> 2  2013     1     1      533            529         4      850            830
#> 3  2013     1     1      542            540         2      923            850
#> 4  2013     1     1      544            545        -1     1004           1022
#> 5  2013     1     1      554            600        -6      812            837
#> 6  2013     1     1      554            558        -4      740            728
#> # … with 336,770 more rows, and 11 more variables: arr_delay <dbl>,
#> #   carrier <chr>, flight <int>, tailnum <chr>, origin <chr>, dest <chr>,
#> #   air_time <dbl>, distance <dbl>, hour <dbl>, minute <dbl>, time_hour <dttm>

提取月份為1,日期為1的數(shù)據(jù)

filter(flights, month == 1, day == 1)
#> # A tibble: 842 x 19
#>    year month   day dep_time sched_dep_time dep_delay arr_time sched_arr_time
#>   <int> <int> <int>    <int>          <int>     <dbl>    <int>          <int>
#> 1  2013     1     1      517            515         2      830            819
#> 2  2013     1     1      533            529         4      850            830
#> 3  2013     1     1      542            540         2      923            850
#> 4  2013     1     1      544            545        -1     1004           1022
#> 5  2013     1     1      554            600        -6      812            837
#> 6  2013     1     1      554            558        -4      740            728
#> # … with 836 more rows, and 11 more variables: arr_delay <dbl>, carrier <chr>,
#> #   flight <int>, tailnum <chr>, origin <chr>, dest <chr>, air_time <dbl>,
#> #   distance <dbl>, hour <dbl>, minute <dbl>, time_hour <dttm>

或者直接賦值給某一個變量

jan1 <- filter(flights, month == 1, day == 1)

插播一個操作技巧,在變量兩側(cè)加上括號,也可以直接顯示,結(jié)果

(jan1 <- filter(flights, month == 1, day == 1))

2. 加入邏輯運算符提取多行

“&” 是“和”,“|” 是“或”,“!"指代“不是”


加上邏輯運算符,配合管道符,就可以進行多項條件選取的操作。
例如,要選取月份為11和12的觀察選項,就會有兩種寫法

filter(flights, month == 11 | month == 12)

或者

nov_dec <- filter(flights, month %in% c(11, 12))

%in%是匹配符,在判斷的時候經(jīng)常用到

參考資料

https://r4ds.had.co.nz/transform.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容