r - 编码/求和功能
问题描述
我正在创建一个函数,它将根据人们的家庭组成对他们进行编码。如下代码所示,#21 表示一对夫妇有一个或多个 15 岁以下的孩子。
# 10 One adult without children
# 11 One adult with at least an own son or daughter aged less than 15
# 12 else: an own child aged 15 to 24 (1)
# 13 else: another child aged less than 15
# 20 One couple without children
# 21 One couple with at least:an own son or daughter aged less than 15
# 22 else: an own child aged 15 to 24 (1)
# 23 else: another child aged less than 15
使用 case_when() 和 between() 函数,我标记观察结果,如下所示:
V(x)$age.code <- case_when(V(x)$age <= 15 ~ "x1",
between(V(x)$age, 15, 18) ~ "x2",
between(V(x)$age, 18, 24) ~ "X3",
V(x)$age > 24 ~ "X4")
然后我创建了按家庭计算成人/儿童的功能。
hhcomp <- function(x){
if (sum(x == "X4", na.rm = T) == 1 | sum(x == "x3", na.rm = T) == 1)
{y <- "10"}
else if (sum(x == "X4", na.rm = T) | sum(x == "X3", na.rm = T) == 1 &
sum(x == "X1", na.rm = T) >= 1)
{y <- "11"}
else if ((sum(x == "X4", na.rm = T) | sum(x == "X3", na.rm = T) == 1) &
sum(x == "X2", na.rm = T) >= 1 & sum(x == "X1") >= 1)
{y <- "12"}
else {y <- NA}
}
如上所示:
X1 = less than 15
x2 = 15 to 18
X3 = 18 to 24
x4 = greater than 24
我无法在 hhcomp 函数中编码总和,尤其是对于 #12 和 #13。我不确定在哪里放置与号 (&) 和或 (|) 运算符以及是否需要括号
编辑:
ID FamID Age.Code
1 A1 X1
2 A1 X3
3 A2 X4
4 A2 x4
df.2 <- df %>% group_by(FamID) %>% mutate(code = hhcomp(Age.Code)) %>%
ungroup()
我想计算每个 FamID 的 X 项,并使用 mutate 将代码作为新变量应用于每个 ID。
我在使用逻辑运算符时遇到问题
解决方案
推荐阅读
- python - 为什么两个数组中的值没有发生变化?做第一个
- python - 如何使用 BS4 从标签外部提取文本
- python - 如何获取延迟属性值?
- python - 带有 Python 脚本的 PTV VISSIM COM
- sql - SSIS OLEDB - 尝试将记录加载到 oracle GTT 时收到错误 ORA-01403 未找到数据
- kubernetes - 如何在控制器中处理 K8s PVC 调整大小?
- mysql - Mysql:UPDATE SET命令中的增量变量
- python - Python在列表列表中搜索列表值
- c - 可以安全地将 objc_msgsend 转换为可变长度参数函数
- java - 如何反映 java.Math 之类的类(我想提取参数的函数类型,例如:Math.abs() 等)