-
arrange()排序
arrange(flights, year, month, day)
注:就是excel的多条件排序。后面的在前面的变量基础上排序。
arrange(flights, desc(dep_delay))
降序排列。
无论正序倒序,空值排在最后
df <- tibble(x = c(5, 2, NA))
arrange(df, x)
arrange(df, desc(x))#NA总是排在后面
注:arrange(df, desc(is.na(x)))
只把NA排在前面,其他数字还按原来顺序排。
arrange(df, desc(is.na(x)),x)
把NA排在前面,其他X数据还按正序排。同上效果。
arrange(df, desc(is.na(x),x))
把NA排在前面,其他x数据按倒序排。
-
select()筛选列
#1. 根据列名单独选择某几列
select(flights, year, month, day)
#2.连选几列
select(flights, year:day)
#3.连选+反选
select(flights, -(year:day))
#4.辅助函数-选择列名符合以下要求的
starts_with("abc"): 以abc开头的
ends_with("xyz"): 以xyz结尾的
contains("ijk"):包含ijk的
matches("(.)\\1"): 匹配正则表达式的
#5.重命名
rename(flights, tail_num = tailnum) #将tailnum修改为tail_name
#6.某几列移动到开头,everything表示其余各列
select(flights, time_hour, air_time, everything())
select(flights, contains("TIME", ignore.case = FALSE))
select辅助函数默认忽略大小写,如需修改加上ignore.case = FALSE
注:filter主要筛选行,select主要筛选列。
-
mutate()增加新变量
mutate() 总是将新列添加在数据集的最后,增加的新变量可以通过运算得到。
flights_sml <- select(flights,
year:day,
ends_with("delay"),
distance,
air_time
)
mutate(flights_sml,
gain = arr_delay - dep_delay,
speed = distance / air_time * 60
)
transmute():只保留新列。
transmute(flights,
gain = arr_delay - dep_delay,
hours = air_time / 60,
gain_per_hour = gain / hours
)

网友评论