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

如何在R语言中将数值均匀分配到指定年份?

R语言实现产品数量按年份均匀拆分

首先注意你的原始数据中QTY列是字符类型,需要先转换为数值类型才能进行除法运算。下面提供两种实现方式:

方法一:基础R实现

# 转换QTY为数值型
df$QTY <- as.numeric(df$QTY)

# 计算每个产品每年分配的数量
year_count <- length(years)
df$annual_qty <- df$QTY / year_count

# 生成产品与年份的全组合
product_year <- expand.grid(product = df$product, Year = years)

# 合并数据并整理列顺序
result <- merge(product_year, df[, c("product", "annual_qty")], by = "product")
result <- result[, c("product", "annual_qty", "Year")]
colnames(result)[2] <- "QTY"

# 保留一位小数(和示例格式一致)
result$QTY <- round(result$QTY, 1)

# 查看结果
result

方法二:tidyverse工具包实现

如果你习惯用tidyverse的语法,可以这样做:

library(dplyr)
library(tidyr)

df %>%
  mutate(QTY = as.numeric(QTY),
         # 将年份列表绑定到每个产品行
         Year = list(years),
         # 计算每年分配的数量
         QTY = QTY / length(years)) %>%
  # 展开年份列表为多行
  unnest(Year) %>%
  # 保留一位小数
  mutate(QTY = round(QTY, 1)) %>%
  # 调整列顺序
  select(product, QTY, Year)

运行上述代码后,就能得到你期望的按年份拆分后的结果,每个产品的数量会均匀分配到指定的所有年份中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 06:45:14