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()函数,加油~❀