r - 根据组和当前分类变量创建新的分类变量
问题描述
我正在尝试基于组和当前变量创建分类变量。
我当前的 df 有变量:ID、GroupID 和 Drinker。我正在尝试创建一个新变量(GroupDrink),如果组(GroupID)中的任何个人(ID)为饮酒者选择“是”,那么该组中的所有个人都将对新变量(GroupDrink)选择“是”。请参阅下表了解更多详情。
ID | 组ID | 饮酒者 | GroupDrink(新变量) |
---|---|---|---|
1 | 25 | 是的 | 是的 |
2 | 25 | 不 | 是的 |
3 | 21 | 不 | 不 |
4 | 40 | 是的 | 是的 |
5 | 40 | 不 | 是的 |
6 | 40 | 不 | 是的 |
解决方案
这是否有效:
library(dplyr)
df %>% group_by(GroupID) %>% mutate(GroupDrink = if_else(any(Drinker == 'Yes'), 'Yes','No'))
# A tibble: 6 x 4
# Groups: GroupID [3]
ID GroupID Drinker GroupDrink
<dbl> <dbl> <chr> <chr>
1 1 25 Yes Yes
2 2 25 No Yes
3 3 21 No No
4 4 40 Yes Yes
5 5 40 No Yes
6 6 40 No Yes
使用的数据:
df
# A tibble: 6 x 3
ID GroupID Drinker
<dbl> <dbl> <chr>
1 1 25 Yes
2 2 25 No
3 3 21 No
4 4 40 Yes
5 5 40 No
6 6 40 No
推荐阅读
- python - (对于python API)要发送带有附件的电子邮件,需要服务。这是什么服务,我如何访问它?
- amazon-web-services - DynamoDB 的 BatchWriteItem API 调用如何写入超过 10MB 的数据,因为它最多可以写入 25 个 400KB/item 的项目?
- angular - 如何将 firebase.auth 导入 Angular 10
- node.js - 错误:没有使用 oidc-client-js 响应的状态
- javascript - 为什么我收到错误:超过最大更新深度。当我没有无限循环时?
- javascript - 将 React 应用程序部署到 github 时出现问题
- javascript - 包含 javascript 的 appendChild
- excel - excel公式,更新值和检查
- reactjs - 分叉项目返回未经授权的令牌
- python - 无法在命令行中运行 py2 虚拟环境