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

在R语言中按条件计算并添加UV.rate新行的技术实现问题

问题解决:按分组添加失业率与职位空缺率比值的新行

原始数据结构

DATEIndustryStatisticsVALUE
2022-01-01Agriculture(农业)Employment(就业人数)500
2022-01-01Agriculture(农业)Unemployment(失业人数)200
2022-01-01Agriculture(农业)Vacancies(职位空缺数)100
2022-01-01Construction(建筑业)Employment(就业人数)800
2022-01-01Construction(建筑业)Unemployment(失业人数)400
2022-01-01Construction(建筑业)Vacancies(职位空缺数)100

原代码问题

你的代码存在两个核心问题:

  • 未按DATE和Industry分组,summarise会对整个数据框计算,而非每个分组单独运算
  • 代码末尾多了一个无效的%>%,属于语法错误

可行解决方案

使用dplyr完成分组计算+合并操作,代码如下:

library(dplyr)

# 按DATE和Industry分组,生成UV.rate对应行
uv_rate_rows <- df %>%
  group_by(DATE, Industry) %>%
  summarise(
    VALUE = VALUE[Statistics == "Unemployment"] / VALUE[Statistics == "Vacancies"],
    Statistics = "UV.rate",
    .groups = "drop"  # 取消分组状态,避免后续合并异常
  )

# 合并原始数据与新生成的UV.rate行
newdf <- bind_rows(df, uv_rate_rows)

结果说明

运行后newdf会在每个DATE+Industry分组下新增一行:

  • Statistics列值为UV.rate
  • VALUE列值为对应分组下失业人数除以职位空缺数的结果(农业组为2,建筑业组为4)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 15:24:18