我是新的R,需要你的帮助,为一个相对简单的任务。我有一个数据框架,其中包括许多样本,为这些样本收集了在不同日期收集的观测数据。观测日期的数目和每个日期内的观测次数在样本之间有所不同。我的数据框架的简短示例:
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我想要的是一个输出表,其中的数据描述如下:
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、日期、该特定样本在该一天的观测次数,以及在最后一栏中,对该特定样本的观测次数的累积和。观察类型(红色,蓝色,…)没关系,我只对每个收集日的观测数感兴趣。
谢谢你的建议!
发布于 2022-11-25 13:45:06
你可以这样做:
library(dplyr)
df %>%
count(sampleID, day, name = 'n_obs') %>%
group_by(sampleID) %>%
mutate(n_cumulative = cumsum(n_obs))输出:
# 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 4https://stackoverflow.com/questions/74573688
复制相似问题