r - 创建一个新列,显示前一组中的一个在 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)))
我一直在匹配死行和受影响的行
解决方案
您可以使用 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))
推荐阅读
- java - 将 swing 组件添加到 javafx 选项卡中
- c# - system.drawing.image 中的“System.OutOfMemoryException”
- android - 为什么线性布局 maxHeight 不起作用?
- azure-functions - Azue Function V2 - 事件中心触发器不尊重主机配置 maxBatchSize
- kubernetes - 通过 kubernetes 注释进行 Traefik 健康检查
- logging - Logback:是否可以将 TimeBasedRollingPolicy 与 SizeBasedTriggeringPolicy 结合使用?
- java - RadioGroup 中的 RecyclerView 和 RadioButton
- javascript - 如何从 ajax 获取数据 - JS & Jquery
- powershell - 在 PowerShell 中比较多个 CSV 列并从两者返回完整数据
- python - Python / Pandas 中的 R 向量语法