R语言初步-数据转换-2.arrange() 函数

R语言学习笔记总结


R语言初步-用dplyr进行数据转换

2.使用arrange() 排列 行

主要用于改变行的顺序

arrange(数据框名称,排列依据)
arrange(flights,year,month,day)
#运行后:
 A tibble: 336,776 x 19
    year month   day dep_time sched_dep_time dep_delay arr_time
   <int> <int> <int>    <int>          <int>     <dbl>    <int>
 1  2013     1     1      517            515         2      830
 2  2013     1     1      533            529         4      850
 3  2013     1     1      542            540         2      923
 4  2013     1     1      544            545        -1     1004
 5  2013     1     1      554            600        -6      812
 6  2013     1     1      554            558        -4      740
 7  2013     1     1      555            600        -5      913
 8  2013     1     1      557            600        -3      709
 9  2013     1     1      557            600        -3      838
10  2013     1     1      558            600        -2      753
# ... with 336,766 more rows, and 12 more variables: sched_arr_time <int>,
#   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>

在arrange()中使用desc()可以按列进行降序排序

arrange(flights,desc(dep_delay))
#运行后:
# A tibble: 336,776 x 19
    year month   day dep_time sched_dep_time dep_delay arr_time
   <int> <int> <int>    <int>          <int>     <dbl>    <int>
 1  2013     1     9      641            900      1301     1242
 2  2013     6    15     1432           1935      1137     1607
 3  2013     1    10     1121           1635      1126     1239
 4  2013     9    20     1139           1845      1014     1457
 5  2013     7    22      845           1600      1005     1044
 6  2013     4    10     1100           1900       960     1342
 7  2013     3    17     2321            810       911      135
 8  2013     6    27      959           1900       899     1236
 9  2013     7    22     2257            759       898      121
10  2013    12     5      756           1700       896     1058
# ... with 336,766 more rows, and 12 more variables: sched_arr_time <int>,
#   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>
#运行后明显是以dep_delay一列降序排列的。

关于缺失值的说明:

缺失值总是排在最后

df <- tibble(x=c(5,2,NA))
arrange(df,x)
#运行:
# A tibble: 3 x 1
      x
  <dbl>
1     2
2     5
3    NA

或者降序排列时:

df <- tibble(x=c(5,2,NA))
arrange(df,desc(x))
#运行后:
# A tibble: 3 x 1
      x
  <dbl>
1     5
2     2
3    NA

问题:如何用is.na()函数将NA排在前面?

错误举例:
df <- tibble(x=c(2,5,is.na(x)))
arrange(df,desc(x))

正确代码:

df <- tibble(x=c(2,5,NA))
arrange(df,desc(is.na(x)))
#运行后:
# A tibble: 3 x 1
      x
  <dbl>
1    NA
2     2
3     5

关于缺失值的代码稍有些绕,好好理解代码的本质含义~


明天继续学习第三个函数:select()函数,加油~❀

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容