在R语言中为员工角色数据创建二元索引的技术需求
在R中生成0/1分组索引的实现方案
关键前提处理
首先注意你的E2列是字符类型,无法直接参与数值计算,第一步需要将其转换为数值型:
data$E2 <- as.numeric(data$E2)
计算两组员工总数
分别统计A1/A2组和A3/A4组的员工总数:
sum_a1a2 <- sum(data$E2[data$E1 %in% c("A1", "A2")]) sum_a3a4 <- sum(data$E2[data$E1 %in% c("A3", "A4")])
生成目标索引
根据规则生成0或1的索引,这里提供两种简洁实现方式:
- 方式一(直观判断):
index <- ifelse(sum_a3a4 > sum_a1a2, 1, 0)
- 方式二(逻辑转数值,更简洁):
index <- as.integer(sum_a3a4 > sum_a1a2)
完整测试代码
将所有步骤整合,测试你的示例数据:
E1 <- c("A1","A2","A3","A4") E2 <- c("2","0","12","8") data <- data.frame(E1,E2) # 转换数据类型 data$E2 <- as.numeric(data$E2) # 计算分组总和 sum_a1a2 <- sum(data$E2[data$E1 %in% c("A1", "A2")]) sum_a3a4 <- sum(data$E2[data$E1 %in% c("A3", "A4")]) # 生成索引 index <- as.integer(sum_a3a4 > sum_a1a2) print(index) # 输出结果为1,符合预期
内容的提问来源于stack exchange,提问作者k34l
相关产品推荐
相关产品推荐

