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

在R语言中为数据框每行生成两列数值间的随机值

解决每行生成区间随机数的问题

没问题,我来帮你搞定这个需求!首先先确认你的数据框结构,方便后续操作:

# 重现你的数据框
df <- structure(list(lowage = c(45, 15, 9, 51, 22, 45, 4, 4, 9, 25), 
                     highage = c(50, 21, 14, 60, 24, 50, 8, 8, 14, 30)), 
                .Names = c("lowage", "highage"), 
                row.names = c(NA, 10L), 
                class = "data.frame")

接下来分两种常见场景给你解决方案:

1. 生成连续型均匀随机数(比如带小数的年龄)

直接用R的runif()函数就能实现高效的向量化操作,完美匹配你的需求:

# 添加age列,每行数值介于lowage和highage之间
df$age <- runif(n = nrow(df), min = df$lowage, max = df$highage)

代码说明:

  • n = nrow(df):指定生成与数据框行数一致的随机数数量
  • min = df$lowage:将每行的lowage作为该随机数的下限
  • max = df$highage:将每行的highage作为该随机数的上限
  • 生成的是均匀分布的随机数,区间内每个数值被选中的概率均等

2. 生成整数型随机数(比如整数年龄)

如果你的场景需要整数形式的年龄,可以用mapply()结合sample()来实现:

# 添加整数类型的age_int列
df$age_int <- mapply(function(low, high) sample(low:high, size = 1), 
                     df$lowage, df$highage)

代码说明:

  • mapply()会逐行遍历lowage和highage列,把每对数值传入自定义函数
  • sample(low:high, size = 1):从low到high的整数序列中随机抽取1个值
  • 生成的随机数都是整数,且包含区间两端的数值

最后你可以用print(df)查看处理后的完整数据框。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:48:21