美文网首页R数据读取 清理
Day 7 dplyr玩转R数据处理

Day 7 dplyr玩转R数据处理

作者: 陈宇乔 | 来源:发表于2018-12-17 22:09 被阅读10次

    5个关键的dplyr函数:

    根据值选择观察(记录),filter()####筛选行
    对行重新排序,arrange() ######arrange()函数工作原理和filter()相似,但它不是选择行,而是改变行的顺序。
    根据名字选择变量,select()   #####筛选列
    根据已知的变量创建新的变量,mutate()
    将许多值塌缩为单个描述性汇总,summarize()
    重命名列rename()
    

    举例filter()

    a <- filter(flights, month == 1, day == 1)
    b<- filter(flights, month == 11 | month == 12)
    c <- filter(flights, month %in% c(11, 12))
    

    列举arrange()

    arrange(flights, year, month, day)
    arrange(flights, desc(arr_delay))
    
    select(flights, year, month, day)
    select(flights, year:day) # 选择year到day之间(包含本身)的所有列
    select(flights, -(year:day))# 选择那么除year到day的所有列
    有很多帮助函数可以使用在select()函数中:
    starts_with("abc")匹配以“abc”开头的名字。
    ends_with("xyz")匹配以“xyz”结尾的名字。
    contains("ijk")匹配包含“ijk”的名字。
    matches("(.)\\1")选择符合正则表达式的变量。这里是任意包含有重复字符的变量。
    num_range("x", 1:3)匹配x1,x2,x3。
    

    rename重命名列

    rename(flights, tail_num = tailnum) ###rename()来给变量重新命名列名
    

    使用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)
    ####再例如
    mutate(flights_sml,
           gain = arr_delay - dep_delay,
           hours = air_time / 60,
           gain_per_hour = gain / hours)
    ####如果你仅仅想要保存新的变量,使用transmute():
    transmute(flights,
              gain = arr_delay - dep_delay,
              hours = air_time / 60,
              gain_per_hour = gain / hours)
    
    

    summarize()与group_by()和管道符%>%配对使用

    summarize()与group_by()配对使用
    比如,我们想要按日期分组,得到每个日期的平均延期:
    by_day <- group_by(flights, year, month, day)
    summarize(by_day, delay = mean(dep_delay, na.rm = TRUE))
    #####探索每个位置距离和平均航班延迟的关系
    delays <- flights %>%
        group_by(dest) %>%
        summarize(
            count = n(),
            dist = mean(distance, na.rm = TRUE),
            delay = mean(arr_delay, na.rm = TRUE)
        ) %>%
        filter(count > 20, dest != "HNL")
    #####其中n()计数的作用
    上述代码分三步进行了数据准备:
    1.按目的地将航班分组,计算了每一组的dist平均值和delay 的平均值。
    2.汇总计算距离、平均延时和航班数目
    3.移除噪声点和Honolulu航班,它太远了。
    
    

    相关文章

      网友评论

        本文标题:Day 7 dplyr玩转R数据处理

        本文链接:https://www.haomeiwen.com/subject/xdlhkqtx.html