r - 在 R 中,如何使用 tidyverse 中的某些东西将虚拟变量值传播给组中的每个人(即家庭)?
问题描述
我有按家庭分组的个人数据。我正在尝试创建一个家庭级别的虚拟变量,指示有孩子的家庭。我根据观察的年龄创建了一个个人级别的 Child 变量。如果它是 1,我想将这个值“传播”给家庭的所有成员。
数据如下所示:
HHID Child
1 0
1 1
1 0
2 0
2 1
3 0
3 0
3 0
我想要这样的数据框:
HHID Child HH_child
1 0 1
1 1 1
1 0 1
2 0 1
2 1 1
3 0 0
3 0 0
3 0 0
我认为可以使用 sqldf 来完成,但我想在 Tidyverse 中完成。谢谢!
解决方案
这是一个tidyverse/dplyr
解决方案:
library(dplyr)
df %>%
group_by(HHID) %>%
mutate(HH_child = if_else(any(Child == 1),1,0))
这给了我们:
# A tibble: 8 x 3
HHID Child HH_child
<int> <int> <dbl>
1 1 0 1
2 1 1 1
3 1 0 1
4 2 0 1
5 2 1 1
6 3 0 0
7 3 0 0
8 3 0 0
数据:
structure(list(HHID = c(1L, 1L, 1L, 2L, 2L, 3L, 3L, 3L), Child = c(0L,
1L, 0L, 0L, 1L, 0L, 0L, 0L)), row.names = c(NA, -8L), .internal.selfref = <pointer: 0x0b952498>, class = c("tbl_df",
"tbl", "data.frame"))
推荐阅读
- python-3.x - 无法在 python 中创建绘图表单文件数据
- php - 无法使用按钮提交表单以创建新用户
- c# - 如何修复 log4net 控制台输出配置
- python - 如何在 Python 中从文本文档中取出几行数值数据,对其进行操作并将其写入文本文档中?
- pandas - 如何根据其他数据框更新列的值
- php - 如何将图像 ID 存储在 wordpress 数据库(本地主机)中
- ios - 自定义框架中 App 的访问 Bundle Identifier
- python - 从特定用户那里获取有关某些项目的推文
- javascript - 如何在 React Hooks 中设置为初始状态
- c - 为什么 select() 不对收到的消息做出反应?