根据R(dplyr)中的两个条件进行分组和重命名

林内特

我有一个数据集df:

最终,我希望能够将数据分组为“块”,其中“文件夹”列包含字符串“ Out”,并确保考虑到DATE及其关联的空Message值。有没有一种方法可以为每个实例“ Out”创建一个块,并在计算其持续时间的同时出现一个空的Message行。

  Folder               DATE                         Message
  Outdata              9/9/2019 5:46:00                   
  Outdata              9/9/2019 5:46:01
  Outdata              9/9/2019 5:46:02
  In                   9/9/2019 5:46:03            hello
  In                   9/9/2019 5:46:04            hello
  Outdata              9/10/2019 6:00:01
  Outdata              9/10/2019 6:00:02
  In                   9/11/2019 7:50:00           hello
  In                   9/11/2019 7:50:01           hello

我想要这个输出:

 New Variable        Duration        Message
 Outdata1              2 sec
 Outdata2              1 sec

我已经包含了dput:

dput(sample)
structure(list(Folder = structure(c(2L, 2L, 2L, 1L, 1L, 2L, 2L, 
1L, 1L), .Label = c("In", "Outdata"), class = "factor"), Date = structure(c(5L, 
6L, 7L, 8L, 9L, 1L, 2L, 3L, 4L), .Label = c("9/10/2019 6:00:01 AM", 
"9/10/2019 6:00:02 AM", "9/11/2019 7:50:00 AM", "9/11/2019 7:50:01 AM", 
"9/9/2019 5:46:00 AM", "9/9/2019 5:46:01 AM", "9/9/2019 5:46:02 AM", 
"9/9/2019 5:46:03 AM", "9/9/2019 5:46:04 AM"), class = "factor"), 
Message = structure(c(1L, 1L, 1L, 2L, 2L, 1L, 1L, 2L, 2L), .Label = c("", 
"hello"), class = "factor")), class = "data.frame", row.names = c(NA, 
-9L))

这是我尝试过的方法,效果很好,我只需要考虑空Message值的情况。

  library(dplyr)

  df  %>%
  mutate(DATE = as.POSIXct(DATE, format = "%m/%d/%Y %I:%M:%S %p"), 
     gr = cumsum(Folder != lag(Folder, default = TRUE))) %>%
 filter(Folder == "Out") %>%
 arrange(gr, DATE) %>%
 group_by(gr) %>%
 summarise(Duration = difftime(last(DATE), first(DATE), units = "secs")) %>%
 mutate(gr = paste0('Out', row_number()))

上面的代码可以正常工作,但是我不确定如何满足row ==“”的条件

罗纳克·沙

也许,只是pasteMessage一个串起来。

library(dplyr)

sample  %>%
  mutate(DATE = as.POSIXct(Date, format = "%m/%d/%Y %I:%M:%S %p"), 
         gr = cumsum(Folder != lag(Folder, default = TRUE))) %>%
  filter(Folder == "Outdata") %>%
  arrange(gr, DATE) %>%
  group_by(gr) %>%
  summarise(Duration = difftime(last(DATE), first(DATE), units = "secs"), 
            Message = paste0(Message, collapse = "")) %>%
  mutate(gr = paste0('Out', row_number()))

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

根据条件对数据进行子集和重命名,并在Dplyr中查找持续时间

来自分类Dev

根据内部列表中的字段对Java中的两个嵌套列表进行排序和分组

来自分类Dev

基于pandas中的两个条件进行分组和聚合的最有效方法

来自分类Dev

重命名同时满足两个条件的文本

来自分类Dev

根据两个条件进行过滤

来自分类Dev

根据R中的两个条件找到相应的值

来自分类Dev

循环两个文件(重命名和移动)

来自分类Dev

根据R中的条件重命名因子级别

来自分类Dev

根据R中的条件重命名因子级别

来自分类Dev

根据 R 中的条件重命名因子级别

来自分类Dev

在SAS / SQL中根据条件删除两个变量分组

来自分类Dev

根据两个SQL表中的日期对数据进行分组

来自分类Dev

如何根据pandas中的不同条件和列对2个数据框进行分组

来自分类Dev

如何在dplyr r中进行条件分组和汇总

来自分类Dev

根据单个条件从两个表进行计数

来自分类Dev

重命名目录中的所有文件时,前两个文件上出现警告5和32

来自分类Dev

R滤镜| 根据条件进行过滤和分组

来自分类Dev

重命名r中拆分组的标题

来自分类Dev

如何按R中的两个以上因素对数据进行分组

来自分类Dev

如何基于R中的两个变量对单个列进行分组

来自分类Dev

根据熊猫中的多个条件对行进行分组和过滤

来自分类Dev

在SQL中按两个条件分组

来自分类Dev

如何根据条件显示两个主表和子表中的数据

来自分类Dev

如何在MySQL中的一个原子操作中重命名两个表

来自分类Dev

如何根据另一个表(在R中)的模式匹配重命名列和行?

来自分类Dev

如何使用两个属性对对象数组进行排序,但根据条件有条件地按排序顺序分组?

来自分类Dev

根据特定条件组合两个变量R

来自分类Dev

根据特定条件组合两个变量R

来自分类Dev

比较和重命名两个文件夹之间的重复文件

Related 相关文章

  1. 1

    根据条件对数据进行子集和重命名,并在Dplyr中查找持续时间

  2. 2

    根据内部列表中的字段对Java中的两个嵌套列表进行排序和分组

  3. 3

    基于pandas中的两个条件进行分组和聚合的最有效方法

  4. 4

    重命名同时满足两个条件的文本

  5. 5

    根据两个条件进行过滤

  6. 6

    根据R中的两个条件找到相应的值

  7. 7

    循环两个文件(重命名和移动)

  8. 8

    根据R中的条件重命名因子级别

  9. 9

    根据R中的条件重命名因子级别

  10. 10

    根据 R 中的条件重命名因子级别

  11. 11

    在SAS / SQL中根据条件删除两个变量分组

  12. 12

    根据两个SQL表中的日期对数据进行分组

  13. 13

    如何根据pandas中的不同条件和列对2个数据框进行分组

  14. 14

    如何在dplyr r中进行条件分组和汇总

  15. 15

    根据单个条件从两个表进行计数

  16. 16

    重命名目录中的所有文件时,前两个文件上出现警告5和32

  17. 17

    R滤镜| 根据条件进行过滤和分组

  18. 18

    重命名r中拆分组的标题

  19. 19

    如何按R中的两个以上因素对数据进行分组

  20. 20

    如何基于R中的两个变量对单个列进行分组

  21. 21

    根据熊猫中的多个条件对行进行分组和过滤

  22. 22

    在SQL中按两个条件分组

  23. 23

    如何根据条件显示两个主表和子表中的数据

  24. 24

    如何在MySQL中的一个原子操作中重命名两个表

  25. 25

    如何根据另一个表(在R中)的模式匹配重命名列和行?

  26. 26

    如何使用两个属性对对象数组进行排序,但根据条件有条件地按排序顺序分组?

  27. 27

    根据特定条件组合两个变量R

  28. 28

    根据特定条件组合两个变量R

  29. 29

    比较和重命名两个文件夹之间的重复文件

热门标签

归档