r - 选择范围内的随机数作为新列
问题描述
我正在尝试在数据框中创建一个新列,values
该列将是一个范围内的随机数。举个例子:
min <- sample(1:10, 10)
max <- sample(11:20, 10)
dt <- data.frame(min=min, max=max)
dt$value <- sample(dt$min:dt$max,1)
这给了我一条错误消息。
我该怎么做?谢谢
解决方案
好吧,它会发出警告(不是错误),因为您向:
函数提供了两个向量而不是两个数字。所以它只是使用第一个元素(在这个例子中是2
和)。19
我想这可能是你所追求的:
dt$value <- sapply(1:nrow(dt), function(x) sample(dt$min[x]:dt$max[x], 1))
或者,如果您使用的是 dplyr,则更清楚:
dt %>%
rowwise() %>%
mutate(value = sample(min:max, 1))
推荐阅读
- sql - SQL 透视值列和位列
- google-sheets - 如何在谷歌表中旋转余额
- asp.net-core - 重定向在 DNS 指向另一台主机的网站上不起作用
- amazon-web-services - 使用 CloudFormation 时,AWS Lambda 函数缺少 websocket 网关的触发器
- python - 认证不适用于 pycharm。苹果系统
- javascript - 区分 JavaScript Try/Catch 中的 API (Apex) 异常类型
- powershell - 如何在 VSCode 中设置自定义 powershell 安装目录
- python - 无法加载使用 Igor pro 保存的 Python hdf 文件
- sql - 处理模型表中 expires_in 数据的最佳方法是什么
- javascript - 在 Discord.js V13 中发送贴纸