选择第一行并在R的数据框中的group_by中聚合

丹尼尔·G

我有以下数据

 df <-  tibble::tribble(
      ~V1,          ~V2,              ~V3,      ~V4,       ~V5,
    "CTV10016020", "PoP", "2020-06-08 01:50:07", 220L,   "Music",
    "CTV10016020", "PoP", "2020-06-08 01:53:45",   8L,    "Music",
    "CTV10016020", "PoP", "2020-06-08 01:53:53", 133L,   "Music",
    "CTV10016020", "PoP", "2020-06-08 01:56:05", 234L,   "Music",
    "CTV10016020", "PoP", "2020-06-08 01:59:57",   0L, "Control",
    "CTVM11011420", "Game", "2020-06-08 02:03:00",   0L, "Control",
    "CTVM11011420", "Game", "2020-06-08 02:03:00",  10L,    "Music",
    "CTVM11011420", "Game", "2020-06-08 02:03:07", 116L,   "Music",
    "CTVM11011420", "Game", "2020-06-08 02:05:01",  32L,   "Audio",
    "CTVM11011420", "Game", "2020-06-08 02:05:32", 208L,   "Music",
    "CTVM11011420", "Game", "2020-06-08 02:08:36",  42L,   "Audio"
    )

我想group_by V1和V2,保留第一个V3记录并计算V4的总和。

样本数据的预期输出:

   V1           V2    V3                   total               
   <chr>        <chr> <dttm>              <int>             
 1 CTV10016020   PoP   2020-06-08 01:50:07   595 
 2 CTVM11011420  Game  2020-06-08 02:03:00   408 

我的尝试:我尝试过,dplyr::first但是我认为我以错误的方式使用它。

 df %>% 
   mutate(V3= as.POSIXct(V3, "%Y-%m-%d %H:%M:%OS", tz = "Europe/Helsinki")) %>% 
   group_by(V1, V2) %>% 
   dplyr::mutate(
     first = dplyr::first(V3)) %>%
   summarize(total_duration = sum(V4))
阿克伦

如果我们删除的mutate后面步骤并在其中group_by使用步骤,则OP的方法应该可以正常工作summarise因为在之后summarize,我们获得了summarise与所有分组列一起使用的唯一列,mutate获得的first(V3)未进入输出

library(dplyr)
 df %>% 
    mutate(V3= as.POSIXct(V3, "%Y-%m-%d %H:%M:%OS", tz = "Europe/Helsinki")) %>%
    group_by(V1, V2) %>%
    summarise(V3 = first(V3), total = sum(V4))
# A tibble: 2 x 4
# Groups:   V1 [2]
#  V1           V2    V3                  total
#  <chr>        <chr> <chr>               <int>
#1 CTV10016020  PoP   2020-06-08 01:50:07   595
#2 CTVM11011420 Game  2020-06-08 02:03:00   408

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

删除第一行并在 R 中的数据框中添加下一行的迭代

选择聚合中的第一行和最后一行,并在SQL中创建2列

从 R 中的数据框中提取第一行

选择数据框中的第一行和最后一行?

选择DataGridView的第一行并在文本框中显示单元格内容

R-如何根据第一行中的值合并数据框中的列

在 R 中:选择一行中数值的数据框函数中的列

从数据框中删除第一行

将第一行替换为 NA 并在 R 中向下推一行

r - 删除数据框中每个主题的第一行条件

从熊猫数据框中随机选择唯一行

提取熊猫中数据框的第一行和最后一行

在Pandas数据框中查找单个文件的第一行和最后一行

从R中的数据框中删除一行

如何计算每一行的不同数字并在 R 中创建一个新的数据框?

在数据框中复制一行并在复制的行中翻转列

在R中按组选择从第一行开始并从最后一行结束

将第一行转换为数据框列表中的列名,然后删除第一行

R我可以获取数据框中每一行的第一个元素吗

如何删除每个group_by中的最后一行?

对于R数据框中的每一行

按名称在 R 数据框中获取一行

编辑数据框R中的一行

R删除每组数据框中的最后一行

在数据框中的一行中查找第一个出现

使用sqlite中的group by选择每个组中的第一行

大数据框中从属子集的每一行的多个新聚合

R 获取在数据框列中具有字符串变量的第一行的行号

如何提取 R 中第一行包含特定值的数据框的所有列