首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在R中计算每天观察组内的累积和

在R中计算每天观察组内的累积和
EN

Stack Overflow用户
提问于 2022-11-25 13:39:15
回答 1查看 23关注 0票数 1

我是新的R,需要你的帮助,为一个相对简单的任务。我有一个数据框架,其中包括许多样本,为这些样本收集了在不同日期收集的观测数据。观测日期的数目和每个日期内的观测次数在样本之间有所不同。我的数据框架的简短示例:

代码语言:javascript
复制
sampleID day    obs
sample-1   2   blue
sample-1   3    red
sample-1   3 yellow
sample-1   6  green
sample-1   6   blue
sample-1   6  black
sample-2   4   blue
sample-2   4 yellow
sample-2   8 orange
sample-2  10  black
sample-2  12    red
sample-3   1  white
sample-3   1  black
sample-3   5 orange
sample-3   5   blue

我想要的是一个输出表,其中的数据描述如下:

代码语言:javascript
复制
sampleID day n_obs n_cumulative
sample-1   2     1            1
sample-1   3     2            3
sample-1   6     3            6
sample-2   4     2            2
sample-2   8     1            3
sample-2  10     1            4
sample-2  12     1            5
sample-3   1     2            2
sample-3   5     2            4

也就是说,在每一行中,我希望得到该样本的样本ID、日期、该特定样本在该一天的观测次数,以及在最后一栏中,对该特定样本的观测次数的累积和。观察类型(红色,蓝色,…)没关系,我只对每个收集日的观测数感兴趣。

谢谢你的建议!

EN

回答 1

Stack Overflow用户

发布于 2022-11-25 13:45:06

你可以这样做:

代码语言:javascript
复制
library(dplyr)

df %>%
  count(sampleID, day, name = 'n_obs') %>%
  group_by(sampleID) %>%
  mutate(n_cumulative = cumsum(n_obs))

输出:

代码语言:javascript
复制
# A tibble: 9 x 4
# Groups:   sampleID [3]
  sampleID   day n_obs n_cumulative
  <fct>    <int> <int>        <int>
1 sample-1     2     1            1
2 sample-1     3     2            3
3 sample-1     6     3            6
4 sample-2     4     2            2
5 sample-2     8     1            3
6 sample-2    10     1            4
7 sample-2    12     1            5
8 sample-3     1     2            2
9 sample-3     5     2            4
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74573688

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档