• R语言dplyr包高效处理数据-补充函数


    前言:

    已经1年多没有更新博客了,

    似乎工作后时间会越来越少,获取知识的动力和精力有了变化,平凡的普通人大概就是这样吧。

    dplyr包补充用到的实用函数:

    1、函数cur_group_:数据分组组内标记

    1. #使用常见的R语言内置数据集iris
    2. #可以明确的知道当前数据属于哪个分组
    3. iris %>%
    4. group_by(Species) %>%
    5. mutate(group_tag=cur_group_id())
    6. # A tibble: 150 x 6
    7. # Groups: Species [3]
    8. Sepal.Length Sepal.Width Petal.Length Petal.Width Species group_tag
    9. <dbl> <dbl> <dbl> <dbl> <fct> <int>
    10. 1 5.1 3.5 1.4 0.2 setosa 1
    11. 2 4.9 3 1.4 0.2 setosa 1
    12. 3 4.7 3.2 1.3 0.2 setosa 1
    13. #可以明确的知道分组后数据在原始数据所在的行,相当于索引
    14. iris %>%
    15. group_by(Species) %>%
    16. mutate(row_tag= cur_group_rows())
    17. # A tibble: 150 x 6
    18. # Groups: Species [3]
    19. Sepal.Length Sepal.Width Petal.Length Petal.Width Species row_tag
    20. <dbl> <dbl> <dbl> <dbl> <fct> <int>
    21. 1 5.1 3.5 1.4 0.2 setosa 1
    22. 2 4.9 3 1.4 0.2 setosa 2
    23. 3 4.7 3.2 1.3 0.2 setosa 3
    24. #将分组变量以外的数据嵌套起来→相当于dplyr中的group_nest函数
    25. iris %>%
    26. group_by(Species) %>%
    27. summarise(data_tag = list(cur_data()))
    28. # A tibble: 3 x 2
    29. Species data_tag
    30. <fct> <list>
    31. 1 setosa <tibble [50 x 4]>
    32. 2 versicolor <tibble [50 x 4]>
    33. 3 virginica <tibble [50 x 4]>

    2、快速统计分组数据count、add_count

    1. #快速计算分组变量标签的行数
    2. iris %>% count(Species)
    3. Species n
    4. 1 setosa 50
    5. 2 versicolor 50
    6. 3 virginica 50
    7. #灵活计算分组变量指定标签值
    8. iris %>% add_count(Species, wt = Petal.Length)
    9. Sepal.Length Sepal.Width Petal.Length Petal.Width Species n
    10. 1 5.1 3.5 1.4 0.2 setosa 73.1
    11. 2 4.9 3.0 1.4 0.2 setosa 73.1
    12. 3 4.7 3.2 1.3 0.2 setosa 73.1
    13. 4 4.6 3.1 1.5 0.2 setosa 73.1
    14. 5 5.0 3.6 1.4 0.2 setosa 73.1

    3、cumall、cumany条件判断为TRUE/FALSE的前后数据过滤

    1. #计算user_data数据指定条件过滤后按照user_var2排序,再过滤直到第1个user_var3=='y'为TRUE的所有数据
    2. user_data %>%
    3. filter(user_var1==x) %>%
    4. arrange(user_var2) %>%
    5. filter(cumall(!(user_var3=='y'))) %>%
    6. summarise(result_tag=max(user_var4))
    7. 示例:
    8. iris %>%arrange(Sepal.Width) %>% filter(cumall(!Petal.Length>=5))
    9. Sepal.Length Sepal.Width Petal.Length Petal.Width Species
    10. 1 5.0 2.0 3.5 1.0 versicolor
    11. 2 6.0 2.2 4.0 1.0 versicolor
    12. 3 6.2 2.2 4.5 1.5 versicolor

    还没写完!!

  • 相关阅读:
    babel:无法将“babel“项目识别问题
    uview表单 hooks
    分享一个python无人超市管理系统django项目实战源码调试 lw 开题
    电子科大软件系统架构设计——系统规划
    RxJava介绍及基本原理
    Nacos极简教程
    自定义hooks函数
    产品经理要不要考PMP?进化你能力的阶梯!(附:新版考纲及教材)
    什么是React属性钻取(Prop Drilling)
    【网络豆送书第五期】Kali Linux高级渗透测试
  • 原文地址:https://blog.csdn.net/LEEBELOVED/article/details/132945478