首页 > 解决方案 > 创建一个新列,显示前一组中的一个在 r 中被污染

问题描述

我有一个不同组的列表,我想创建一个新列,表明该特定组 id 中的至少一个人已满足该条件。前任

组 ID 死的
12 0
12 1
12 0
130 0
130 0
144 1
144 1
144 0

并想做一个这样的新图表

Group_ID 死的 做作的
12 0 1
12 1 1
12 0 1
130 0 0
130 0 0
144 1 1
144 1 1
144 0 1

这会随着团体规模的不同而持续更长时间

数据来自一个更大的集合,我在其中尝试过

    test1 <- LargeSet%>% 
 group_by(Group_ID)%>%
  mutate(affected= case_when((Dead>0~1), (Dead<1~0)))

我一直在匹配死行和受影响的行

标签: r

解决方案


您可以使用 sapply 函数测试每个 id 的“死”变量的总和,如下所示。
如果患者的总和>=1,则受影响的值为 1 ;否则为 0。

#1- Dataset creation
df=data.frame(id=c(12,12,12,130,130,144,144,144),dead=c(0,1,0,0,0,1,1,0))

#2- Creating and filling the affected variable
df$affected=sapply(df$id,function(x) ifelse(sum(subset(df,id==x)$dead)>=1,1,0))

推荐阅读