在R中计算同一分组内两个变量的非负差值
R语言实现分组内非负差值计算
1. 模拟输入数据集
根据你提供的输入结构,先构造可复现的示例数据:
input_data <- data.frame( Group = c("A", "A", "B", "B", "C", "C"), Type = c("X", "Y", "X", "Y", "X", "Y"), Value = c(5, 3, 2, 7, 6, 6) )
2. 分组计算非负差值
使用dplyr包处理分组逻辑,确保差值始终≥0:
# 若未安装dplyr,先执行:install.packages("dplyr") library(dplyr) # 按Group分组,计算组内数值的非负差值 output_data <- input_data %>% group_by(Group) %>% summarise(Diff = max(Value) - min(Value), .groups = "drop") # 查看最终结果 print(output_data)
3. 结果说明
运行后会得到指定结构的输出:
# A tibble: 3 × 2 Group Diff <chr> <dbl> 1 A 2 2 B 5 3 C 0
适配不同结构的数据集
如果你的实际数据列名不同(比如分组列叫Category、数值列叫Score),只需修改对应列名即可:
output_data <- your_real_data %>% group_by(Category) %>% summarise(Diff = max(Score) - min(Score), .groups = "drop")
内容的提问来源于stack exchange,提问作者Mateus Maciel
相关产品推荐
相关产品推荐

