将两个变量汇总为一个

Summarizing two variables into one

我想汇集来自两个不同变量的数据并求和。原始数据框如下所示:

  group animal period zone        day cum_time_sec
  <chr> <chr>  <chr>  <chr>     <dbl>        <dbl>
1 chr   chr1   q1     eating        1        3.22 
2 chr   chr1   q1     interzone     1        2.14 
3 chr   chr1   q1     marble        1        4.26 
4 chr   chr1   q1     nest          1        0.624

我想汇集 nest 和 marble 的数据并将它们折叠成一行。使用重新编码我得到了这个:

  group animal period zone        day cum_time_sec
  <chr> <chr>  <chr>  <chr>     <dbl>        <dbl>
1 chr   chr1   q1     eating        1        3.22 
2 chr   chr1   q1     interzone     1        2.14 
3 chr   chr1   q1     nest          1        4.26 
4 chr   chr1   q1     nest          1        0.624

但我要找的是这个:

  group animal period zone        day cum_time_sec
  <chr> <chr>  <chr>  <chr>     <dbl>        <dbl>
1 chr   chr1   q1     eating        1        3.22 
2 chr   chr1   q1     interzone     1        2.14 
3 chr   chr1   q1     nest          1        4.884 

非常感谢您的帮助。谢谢:)

没有 minimal reproducible example 很难确定,但这应该可行:

library(dplyr)
yourdata %>%
  mutate(zone = ifelse(zone == "marble", "nest", zone)) %>%
  group_by(group, animal, period, zone, day) %>% 
  summarise(cum_time_sec = sum(cum_time_sec)) %>%
  ungroup()