自引用表(R 编程语言)
Self-Referencing Tables (R Programming Language)
我正在尝试使用 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。
有人可以告诉我如何解决这个错误吗?
谢谢
我尝试post根据@rawr 提供的答案回答:
var_1 <- runif(1000, 0, 100)
var_2 <- runif(1000, var_1, 100)
var_3 <- runif(1000, 0, 100)
var_4 <- runif(1000, var_3, 100)
var_5 <- runif(1000, 0, 100)
var_6 <- runif(1000, var_5, 100)
var_7 <- runif(1000, var_6, 100)
frame_3 <- data.frame(var_1, var_2, var_3, var_4, var_5, var_6, var_7)
head(frame_3)
var_1 var_2 var_3 var_4 var_5 var_6 var_7
1 16.824184 42.45956 26.68427 41.69108 66.104877 67.29392 92.26807
2 5.154861 74.42316 32.87011 73.93285 3.206936 62.48352 63.06708
3 35.263069 48.56498 34.64460 39.81641 12.816591 13.17151 72.77144
4 21.175502 27.04440 18.04221 64.40537 34.614670 65.89940 92.80989
5 17.156617 86.05252 10.88137 84.53697 86.133523 99.04071 99.55816
6 32.293821 89.77986 26.29747 49.53139 76.262548 81.88121 89.91402
这是正确的吗?
谢谢
我正在尝试使用 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。
有人可以告诉我如何解决这个错误吗?
谢谢
我尝试post根据@rawr 提供的答案回答:
var_1 <- runif(1000, 0, 100)
var_2 <- runif(1000, var_1, 100)
var_3 <- runif(1000, 0, 100)
var_4 <- runif(1000, var_3, 100)
var_5 <- runif(1000, 0, 100)
var_6 <- runif(1000, var_5, 100)
var_7 <- runif(1000, var_6, 100)
frame_3 <- data.frame(var_1, var_2, var_3, var_4, var_5, var_6, var_7)
head(frame_3)
var_1 var_2 var_3 var_4 var_5 var_6 var_7
1 16.824184 42.45956 26.68427 41.69108 66.104877 67.29392 92.26807
2 5.154861 74.42316 32.87011 73.93285 3.206936 62.48352 63.06708
3 35.263069 48.56498 34.64460 39.81641 12.816591 13.17151 72.77144
4 21.175502 27.04440 18.04221 64.40537 34.614670 65.89940 92.80989
5 17.156617 86.05252 10.88137 84.53697 86.133523 99.04071 99.55816
6 32.293821 89.77986 26.29747 49.53139 76.262548 81.88121 89.91402
这是正确的吗?
谢谢