【发布时间】:2021-10-10 22:44:27
【问题描述】:
我正在尝试使用 R 编程语言制作“自引用”网格。例如,我制作了以下(非自引用)网格:
var_1 <- rnorm(1000,8,5)
var_2 <- rnorm(1000,8,5)
var_3 <- rnorm(1000,8,5)
var_4 <- rnorm(1000,8,5)
var_5 <- rnorm(1000,8,5)
var_6 <- rnorm(1000,8,5)
var_7 <- rnorm(1000,8,5)
frame_a <- data.frame(var_1, var_2, var_3, var_4, var_5, var_6, var_7)
这行得通:
head(frame_a)
var_1 var_2 var_3 var_4 var_5 var_6 var_7
1 11.106978 6.045635 12.059918 14.576642 6.6631061 2.4308557 4.210330
2 5.356593 9.066030 15.324603 4.170090 7.9821328 0.7412383 8.561553
3 16.971664 5.172987 6.501061 2.827789 0.5317087 6.2078346 9.151058
4 1.903000 7.183025 11.524599 12.188365 9.2445369 9.5063593 3.741548
5 11.744789 10.077375 4.740652 3.738349 6.1231457 5.3983903 -4.863340
6 14.151094 8.234436 8.203216 14.722724 9.6634154 -0.7918751 14.080428
现在,我正在尝试制作一个“自引用网格”——即具有特定条件的网格。对于此网格中的每一行:
- var_2 必须始终大于 var_1
- var_4 必须始终大于 var_3
- var_6 必须始终大于 var_5
- var_7 必须始终大于 var_6
这是我尝试制作这样一个网格
var_1 <- rnorm(1000,8,5)
var_2 <- rnorm(1000,var_1,5)
var_3 <- rnorm(1000,8,5)
var_4 <- rnorm(1000,var_3,5)
var_5 <- rnorm(1000,6,5)
var_6 <- rnorm(1000,var_5,5)
var_7 <- rnorm(1000,var_6,5)
frame_b <- data.frame(var_1, var_2, var_3, var_4, var_5, var_6, var_7)
此代码有效,但未遵守“条件”:
> head(frame_b)
var_1 var_2 var_3 var_4 var_5 var_6 var_7
1 5.9667356 1.518180 9.316051 3.192931 -1.358661 -0.05681164 -5.3893074
2 8.4478170 11.902876 9.588589 -1.220872 6.091870 9.81611979 4.9043055
3 13.6396693 8.554241 9.017625 10.840609 -4.548760 0.22775771 -5.8313070
4 13.4776003 19.735430 4.674371 2.144886 4.933787 -3.13381274 -0.5747767
5 6.3300270 -1.968539 4.413483 5.490492 4.866916 3.72772243 10.1688481
6 0.3662306 -1.633712 6.142054 7.236065 12.506673 10.17450918 7.7536291
例如,在第一行:var_2 不大于 var_1。
谁能告诉我如何解决这个错误?
谢谢
【问题讨论】:
-
您从正态分布中随机抽取数字。在
var_2中,每行中正态分布的平均值将等于var_1中的值。因此,var_2中(大约)一半的数字将少于var_1中的数字。 -
您是不是要使用
runif而不是rnorm? -
@rawr:谢谢你的回复!我想我可以使用“runif”而不是“rnorm”。有很大区别吗?
-
好吧 runif 完全按照您的意愿设置:
(n, lower limit, upper limit),因此您可以使用var_1的结果作为下限,前提是您的上限 > 所有var_1 -
@rawr :我试图根据你的逻辑想出一个答案。你能看一下吗?非常感谢您的帮助!
标签: r frame data-manipulation