You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在R语言中创建行级配对(用于哑铃图)

解决哑铃图行配对问题

核心思路

观察目标结果可知,配对逻辑是将年份尾数相同的行归为同一组(比如1960和1970尾数都是0,归为Pair1;1961和1971尾数都是1,归为Pair2),我们可以基于年份的尾数来生成配对编号。

代码实现(R语言,使用dplyr包)

首先模拟你的原始数据框:

df <- data.frame(
  Year = c(1960, 1961, 1970, 1971),
  Species = rep("Cod", 4),
  Tonnes = c(123, 456, 124, 457)
)

然后用dplyr处理生成Pair列:

library(dplyr)

df_with_pair <- df %>%
  # 提取年份的尾数(Year模10)
  mutate(year_mod10 = Year %% 10) %>%
  # 按尾数分组,给每个组分配唯一的Pair编号
  group_by(year_mod10) %>%
  mutate(Pair = cur_group_id()) %>%
  # 移除中间辅助列,恢复原始列顺序
  ungroup() %>%
  select(-year_mod10) %>%
  select(Year, Species, Tonnes, Pair)

执行后得到的结果就是你需要的配对数据框:

YearSpeciesTonnesPair
1960Cod1231
1961Cod4562
1970Cod1241
1971Cod4572

扩展说明

如果你的数据中有多个物种,只需在group_by中加入Species即可,确保同一物种内按年份尾数配对:

df_with_pair <- df %>%
  mutate(year_mod10 = Year %% 10) %>%
  group_by(Species, year_mod10) %>%
  mutate(Pair = cur_group_id()) %>%
  ungroup() %>%
  select(-year_mod10) %>%
  select(Year, Species, Tonnes, Pair)

内容的提问来源于stack exchange,提问作者Fish_Person

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 09:35:21