考虑以下数据:
df <- data.frame(id=1:5,
x_min = c(0.1,0.2,0.3,0.4,0.5),
x_max = c(0.15,0.23,0.38,0.44,0.57))
我打算从均匀分布中为每一行抽取一个随机样本。为什么我得到的列y
的值相同呢?下面是我所做的:
set.seed(12)
df$y <- runif(1, min=df$x_min, max=df$x_max)
输出:
> df
id x_min x_max y
1 1 0.1 0.15 0.103468
2 2 0.2 0.23 0.103468
3 3 0.3 0.38 0.103468
4 4 0.4 0.44 0.103468
5 5 0.5 0.57 0.103468
1条答案
按热度按时间7xllpg7q1#
这是因为
runif(1, min=df$x_min, max=df$x_max)
的计算结果为单个数字。请将1
替换为nrow(df)
以确保模拟的统一值的数量正确。创建于2023年2月26日,使用reprex v2.0.2