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

如何基于月度收入区间与工时计算小时工资区间及中点值?

计算小时工资区间及中点值解决方案

核心步骤

  • 解析haven_labelled类型的月度收入区间,提取上下限数值
  • 用收入上下限分别除以月度工时,得到小时工资区间
  • 基于小时工资区间计算中点值

代码实现(R语言)

假设使用haven处理标签数据,tidyverse做数据清洗和计算:

1. 构造/加载样本数据

library(haven)
library(tidyverse)

# 模拟样本数据(实际可替换为你的数据集)
sample_data <- tibble(
  totpinc = haven::labelled(
    c(1, 2, 3),
    labels = c("1000-2000" = 1, "2001-3000" = 2, "3001-4000" = 3)
  ),
  mthhrs = c(160, 180, 200)
)

2. 提取月度收入区间上下限

sample_data <- sample_data %>%
  mutate(
    # 将标签转为区间字符串
    income_range = as.character(haven::as_factor(totpinc)),
    # 提取区间下限和上限
    income_lower = as.numeric(str_extract(income_range, "^\\d+")),
    income_upper = as.numeric(str_extract(income_range, "\\d+$"))
  )

3. 计算小时工资区间与中点值

sample_data <- sample_data %>%
  mutate(
    # 计算小时工资上下限
    hourly_wage_lower = income_lower / mthhrs,
    hourly_wage_upper = income_upper / mthhrs,
    # 计算小时工资中点
    hourly_wage_mid = (hourly_wage_lower + hourly_wage_upper) / 2
  )

4. 查看结果

# 筛选关键列展示
select(sample_data, totpinc, mthhrs, hourly_wage_lower, hourly_wage_upper, hourly_wage_mid)

期望输出示例

# A tibble: 3 × 5
  totpinc mthhrs hourly_wage_lower hourly_wage_upper hourly_wage_mid
    <int>  <dbl>             <dbl>             <dbl>           <dbl>
1       1    160              6.25              12.5            9.38
2       2    180             11.1               16.7            13.9
3       3    200             15.0               20.0            17.5

特殊情况处理

如果收入区间包含"低于X"或"高于X"这类非闭合区间:

  • 对于"低于1000",可将下限设为0,上限设为1000
  • 对于"高于4000",可将下限设为4000,上限可根据数据分布设定合理值(如4000*1.5)或标记为NA

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 12:43:09