将函数应用于组的组合,固定1个组

用户名

我有一些看起来像的数据:

   grp    date                id              Y
   <chr>  <dttm>              <chr>       <dbl>
 1 group1 2020-09-01 00:00:00 04003      17039.
 2 group1 2020-09-01 00:00:00 04006      13233.
 3 group1 2020-09-01 00:00:00 04011_AM    7918.
 4 group1 2020-09-01 00:00:00 0401301_AD 22586.
 5 group1 2020-09-01 00:00:00 0401303    20527.
 6 group1 2020-09-01 00:00:00 0401305    29422.
 7 group2 2020-09-01 00:00:00 22017_AM    7088.
 8 group2 2020-09-01 00:00:00 22021_AM    8134.
 9 group2 2020-09-01 00:00:00 22039_AM   15842.
10 group2 2020-09-01 00:00:00 22048      16142.

哪个有不同的组。我还有一个功能:

normaliseData <-function(m){
  (m - min(m)) / (max(m) - min(m))
}

我想通过成对值的最小值和最大值对组进行归一化,保持group1固定不变也就是说,我想规范化数据修复,group1因此它将具有以下组合。

  • group1group2
  • group1group3
  • group1group4

数据:

data <- structure(list(grp = c("group1", "group1", "group1", "group1", 
"group1", "group1", "group2", "group2", "group2", "group2", "group2", 
"group2", "group3", "group3", "group3", "group3", "group3", "group3", 
"group4", "group4", "group4", "group4", "group4", "group4"), 
    date = structure(c(1598918400, 1598918400, 1598918400, 1598918400, 
    1598918400, 1598918400, 1598918400, 1598918400, 1598918400, 
    1598918400, 1598918400, 1598918400, 1598918400, 1598918400, 
    1598918400, 1598918400, 1598918400, 1598918400, 1598918400, 
    1598918400, 1598918400, 1598918400, 1598918400, 1598918400
    ), tzone = "UTC", class = c("POSIXct", "POSIXt")), id = c("04003", 
    "04006", "04011_AM", "0401301_AD", "0401303", "0401305", 
    "22017_AM", "22021_AM", "22039_AM", "22048", "22053_AM", 
    "22054_AM", "28002", "28004", "2800501", "2800502", "2800503", 
    "2800504", "31010_AM", "31015_AM", "31016", "31019_AM", "31023", 
    "31029_AM"), Y = c(17039.329, 13232.982, 7917.693, 22585.676, 
    20527.113, 29422.471, 7087.536, 8134.265, 15842.035, 16142.111, 
    11493.981, 6556.387, 22086.768, 11325.882, 53449.067, 83662.101, 
    78508.089, 66107.125, 5095.169, 5590.531, 17796.439, 6028.701, 
    39271.698, 3642.281)), row.names = c(NA, -24L), groups = structure(list(
    grp = c("group1", "group2", "group3", "group4"), .rows = structure(list(
        1:6, 7:12, 13:18, 19:24), ptype = integer(0), class = c("vctrs_list_of", 
    "vctrs_vctr", "list"))), row.names = c(NA, 4L), class = c("tbl_df", 
"tbl", "data.frame"), .drop = TRUE), class = c("grouped_df", 
"tbl_df", "tbl", "data.frame"))

编辑:

我希望应用以下内容:

#Min / max from group1 and group2
    data %>% 
      filter(grp == "group1" | grp == "group2") %>% 
      mutate(
        normedOut = normaliseData(Y)
      )

#Min / max from group1 and group3
    data %>% 
      filter(grp == "group1" | grp == "group3") %>% 
      mutate(
        normedOut = normaliseData(Y)
      )

#Min / max from group1 and group4
    data %>% 
      filter(grp == "group1" | grp == "group4") %>% 
      mutate(
        normedOut = normaliseData(Y)
      )
Lathan Liou

purrr根据我对您的问题的理解,这是一种选择我们创建一个向量,groups其中包含我们感兴趣的三组固定group1循环的感兴趣的组。我们使用您想要的过滤器和变异序列,然后在groups向量中创建包含标准化数据的每组命名的列这将导致一个数据帧包含3个新列,每个列代表组1和另一组之间的归一化Y。NA将填充没有配对的位置(例如,在group2和group3之间)

groups <- c("group2", "group3", "group4")
groups %>%
  purrr::map_dfr(~ data %>%
        filter(grp == "group1" | grp == .x) %>%
        mutate(!!.x := normaliseData(Y)))

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将函数应用于向量中的连续组

来自分类Dev

将函数应用于组以更改数据

来自分类Dev

将函数应用于 dplyr 中的多个组

来自分类Dev

来自 1 个订阅的 2 个数据集使 1 组只读或将更改应用于 1 组 (Angular)

来自分类Dev

将函数应用于组中的第一个元素,然后重新合并

来自分类Dev

将条件应用于不同的组

来自分类Dev

如何仅将函数应用于dplyr中组的第一行?

来自分类Dev

使用ddply将函数应用于一组行

来自分类Dev

使用data.table将lm函数应用于不同范围的数据和单独的组

来自分类Dev

如何将函数迭代地应用于Excel中的数据组

来自分类Dev

将迭代函数应用于pandas DataFrame中的每个组

来自分类Dev

有什么更好的方法可以将count函数应用于两组列表?

来自分类Dev

使用dplyr将函数应用于每个组并返回指定的数据帧

来自分类Dev

按组将多个函数应用于data.table中的多个列

来自分类Dev

将函数应用于R中数据框中的每个组

来自分类Dev

如何将函数应用于依赖多个列的groupby子组?

来自分类Dev

使用ddply将函数应用于一组行

来自分类Dev

如何将函数应用于R中的分解子组?

来自分类Dev

使用random.shuffle()将一组函数随机应用于python字典

来自分类Dev

将迭代函数应用于pandas DataFrame中的每个组

来自分类Dev

将角度指令应用于一组元素

来自分类Dev

Sed:将替代应用于捕获的组

来自分类Dev

熊猫将功能应用于列和索引组

来自分类Dev

熊猫Groupby将功能应用于组

来自分类Dev

将排名应用于Pandas Groupby中的每个组

来自分类Dev

将操作应用于熊猫中的组

来自分类Dev

将多个条件应用于捕获组

来自分类Dev

将功能应用于数据框中的每个组

来自分类Dev

使用ARM将Azure策略应用于管理组

Related 相关文章

  1. 1

    将函数应用于向量中的连续组

  2. 2

    将函数应用于组以更改数据

  3. 3

    将函数应用于 dplyr 中的多个组

  4. 4

    来自 1 个订阅的 2 个数据集使 1 组只读或将更改应用于 1 组 (Angular)

  5. 5

    将函数应用于组中的第一个元素,然后重新合并

  6. 6

    将条件应用于不同的组

  7. 7

    如何仅将函数应用于dplyr中组的第一行?

  8. 8

    使用ddply将函数应用于一组行

  9. 9

    使用data.table将lm函数应用于不同范围的数据和单独的组

  10. 10

    如何将函数迭代地应用于Excel中的数据组

  11. 11

    将迭代函数应用于pandas DataFrame中的每个组

  12. 12

    有什么更好的方法可以将count函数应用于两组列表?

  13. 13

    使用dplyr将函数应用于每个组并返回指定的数据帧

  14. 14

    按组将多个函数应用于data.table中的多个列

  15. 15

    将函数应用于R中数据框中的每个组

  16. 16

    如何将函数应用于依赖多个列的groupby子组?

  17. 17

    使用ddply将函数应用于一组行

  18. 18

    如何将函数应用于R中的分解子组?

  19. 19

    使用random.shuffle()将一组函数随机应用于python字典

  20. 20

    将迭代函数应用于pandas DataFrame中的每个组

  21. 21

    将角度指令应用于一组元素

  22. 22

    Sed:将替代应用于捕获的组

  23. 23

    熊猫将功能应用于列和索引组

  24. 24

    熊猫Groupby将功能应用于组

  25. 25

    将排名应用于Pandas Groupby中的每个组

  26. 26

    将操作应用于熊猫中的组

  27. 27

    将多个条件应用于捕获组

  28. 28

    将功能应用于数据框中的每个组

  29. 29

    使用ARM将Azure策略应用于管理组

热门标签

归档