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

如何在R Dataframe中基于权重随机抽样新增班次列?

可以实现该需求,你的代码存在几处错误,修正后即可完成:

原代码的问题:

  • sample() 第一个参数传入了整个df2数据框,应指定为班次选项列 df2$shift
  • 权重参数 prob 中使用了错误的对象名 df$weight,正确应为 df2$weight
  • 未指定抽样数量 size,默认仅抽取1个样本,需设置为 nrow(df1) 匹配df1的行数

修正后的代码:

df1$shift <- sample(df2$shift, size = nrow(df1), prob = df2$weight, replace = TRUE)

代码说明:

  • df2$shift:指定从班次选项列表中抽取样本
  • size = nrow(df1):抽取与df1行数一致的样本,确保每一行都分配到班次
  • prob = df2$weight:按照df2定义的权重抽样,Morning被选中的概率为0.8,Evening为0.2
  • replace = TRUE:开启重复抽样,满足多行分配班次的需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 20:09:11