R数据科学day2-2

  • 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
)
R数据科学day2-2_第1张图片
mutate常见创建函数,引用自花花图片

R数据科学day2-2_第2张图片
dplyr数据转换1.png

你可能感兴趣的:(R数据科学day2-2)