R 在下一次计数中计数行并排除行
我试图计算满足条件的组中的行数,但如果这些行数出现在另一级别的后续计数中,则排除这些行数本质上,我试图在随后的人口普查中统计新的和独特的个体发生率,以便通过人口普查创建累积分布。 请注意,样本数据集来自一个较大数据集的样本,该数据集通过处理具有不等的R 在下一次计数中计数行并排除行,r,dplyr,R,Dplyr,我试图计算满足条件的组中的行数,但如果这些行数出现在另一级别的后续计数中,则排除这些行数本质上,我试图在随后的人口普查中统计新的和独特的个体发生率,以便通过人口普查创建累积分布。 请注意,样本数据集来自一个较大数据集的样本,该数据集通过处理具有不等的n()值。此外,个人可能会出现在人口普查中,但不会出现在下一次人口普查中 样本数据集 预期产量 编辑/解释预期输出 对于treatment=H,census=4,变量count=0。之所以为4,是因为在整个普查过程中已经检测到3个人的值高于0。我认为
n()
值。此外,个人可能会出现在人口普查中,但不会出现在下一次人口普查中
样本数据集
预期产量
编辑/解释预期输出
对于treatment=H
,census=4
,变量count=0
。之所以为4,是因为在整个普查过程中已经检测到3个人的值高于0。我认为按原样命名count
变量可能会让读者感到困惑
计数
变量应该检测普查
(通过治疗
)中值>0且以前未检测到的行。您可以计算一个附加变量来调整计数
的定义方式
将以前从未检测到的添加到代码中:
library(dplyr)
sampledata2 <- sampledata %>%
mutate(value = as.numeric(as.character(value))) %>%
group_by(treatment, individual) %>%
arrange(treatment, individual, census) %>%
mutate(never_detected_before = cumsum(value>0) <= 1) %>%
group_by(treatment, census) %>%
summarise(count=sum(value>0 & never_detected_before), total=n()) %>%
group_by(treatment) %>%
mutate(cum.sum=cumsum(count))
库(dplyr)
样本数据2%
变异(值=as.numeric(as.character(值)))%>%
分组依据(治疗,个人)%>%
安排(治疗、个人、普查)%>%
突变(以前从未检测到=累积和(值>0)%
组别(治疗,普查)%>%
汇总(计数=总和(值>0且以前从未检测到),总计=n())%>%
(治疗组)%>%
突变(累积总数=累积总数(计数))
还请注意,默认情况下,group\u by()
会覆盖现有组,因此不需要ungroup()
。您只需计算一个附加变量来调整计数的定义方式
将以前从未检测到的添加到代码中:
library(dplyr)
sampledata2 <- sampledata %>%
mutate(value = as.numeric(as.character(value))) %>%
group_by(treatment, individual) %>%
arrange(treatment, individual, census) %>%
mutate(never_detected_before = cumsum(value>0) <= 1) %>%
group_by(treatment, census) %>%
summarise(count=sum(value>0 & never_detected_before), total=n()) %>%
group_by(treatment) %>%
mutate(cum.sum=cumsum(count))
库(dplyr)
样本数据2%
变异(值=as.numeric(as.character(值)))%>%
分组依据(治疗,个人)%>%
安排(治疗、个人、普查)%>%
突变(以前从未检测到=累积和(值>0)%
组别(治疗,普查)%>%
汇总(计数=总和(值>0且以前从未检测到),总计=n())%>%
(治疗组)%>%
突变(累积总数=累积总数(计数))
还要注意的是,group_by()
默认情况下会覆盖现有的组,以便ungroup()
是不需要的。我不太理解您的预期输出。为什么您说治疗=H和组=4的值>0的个体数是0?应该是3,对吗?我在我的原始帖子末尾添加了一个解释。计数变量应该检测普查中的行(按治疗)值>0且以前未被检测到的。我希望这有帮助!我不太理解您的预期输出。为什么您说治疗=H且组=4的值>0的个体数为0?应该是3,对吗?我在原始帖子的末尾添加了一个解释。count变量应该检测I行n值>0且以前未检测到的普查(按处理)。我希望这有帮助!
treatment census count total cum.sum
1 A 1 0 2 0
2 A 2 0 2 0
3 A 3 0 2 0
4 A 4 1 2 1
5 H 1 1 3 1
6 H 2 1 3 2
7 H 3 1 3 3
8 H 4 0 3 3
library(dplyr)
sampledata2 <- sampledata %>%
mutate(value = as.numeric(as.character(value))) %>%
group_by(treatment, individual) %>%
arrange(treatment, individual, census) %>%
mutate(never_detected_before = cumsum(value>0) <= 1) %>%
group_by(treatment, census) %>%
summarise(count=sum(value>0 & never_detected_before), total=n()) %>%
group_by(treatment) %>%
mutate(cum.sum=cumsum(count))