【发布时间】:2021-05-11 18:55:10
【问题描述】:
我想在 R 中创建一个随机数据框,其中第二列的值 = 第一列 + 数字,第一列的下一个值 = 第二列 + 数字
看起来像这样:
我试过这样做:
Sal = rnorm(150,mean=18,sd=1.7)
H2O = Sal + 0.2358
d = data.frame(Sal = rep(Sal,1), H2O = rep(H2O,1))
df = d[order(d$Sal,d$H2O),]
df
但它并没有真正起作用,因为下一个数字不会“建立”在前一个数字的基础上。
我怎么能这样做?我应该使用循环吗?我的 R 经验相当有限(您可能知道)
提前谢谢你!
【问题讨论】:
-
随机性应该来自哪里?如果
number = 0.2358为常数,则所有其他值均由起始值确定。 -
@IanCampbell 随机性来自第 1 列和第 2 列的值(将是盐和 H2O)如果数字(0.2358)也可以是随机数(间隔为 0.100 到0.350),但我还不知道该怎么做
-
但是在你的例子中,14.231 看起来是随机的,但 14.872 不是随机的,它是
14.231 + 2*number。你的代码说你想从 150 个随机值开始,但你的解释说你想从 1 个随机值开始并从中构建 150 个值。 -
@GregorThomas 是的,就是这样! :) 我用于表格的数字只是作为示例(我没有在它们上面添加 0.2358,我只是为示例发明了随机数)。很抱歉造成混乱!
-
假设
Sal = rnorm(1, mean=18, sd=1.7)和Const <- 0.2358这是你想要的吗?Table <- matrix(Sal + 0:149 * Const, 75, 2, byrow=TRUE)