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

如何按2018-19年度产量重排数据集?R语言reorder函数求助

解决方案

问题原因

你之前的代码没生效,主要有两个可能:

  • 仅用reorder调整了因子水平,但没有对数据集执行arrange来重新排序行
  • 字段名大小写不匹配(比如原数据集是company_code,代码里写成了COMPANY_CODE)

正确实现方式

方法1:通过因子指定排序顺序

先提取2018/19财年的产量数据确定公司顺序,再将company_code转为因子并指定水平顺序,最后排序:

# 提取2018/19财年各公司产量,按产量降序得到公司顺序
company_priority <- dataset %>%
  filter(financial_year == "2018/19") %>%
  arrange(desc(production)) %>%
  pull(company_code)

# 将company_code转为因子,指定顺序后排序整个数据集
dataset_sorted <- dataset %>%
  mutate(company_code = factor(company_code, levels = company_priority)) %>%
  arrange(company_code)

方法2:用match函数直接排序

如果不想修改字段类型,可直接用match生成排序索引:

# 先获取公司优先级顺序(同方法1)
company_priority <- dataset %>%
  filter(financial_year == "2018/19") %>%
  arrange(desc(production)) %>%
  pull(company_code)

# 按优先级顺序排序数据集
dataset_sorted <- dataset %>%
  arrange(match(company_code, company_priority))

验证结果

排序后,同公司的所有记录会集中在一起,且公司顺序按照2018/19财年产量从高到低排列(即3→1→2)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 08:06:22