2017-01-06 12 views
0

내 의도는 두 개의 데이터 세트에서 새로운 비율의 데이터를 생성하는 것입니다. 이무작위로 선택된 데이터 매트릭스와 선형 혼합 R

V1    V2   V3 
17.73401882 15.57104835 38.38786527 
17.46926296 15.51123547 38.15194112 
17.7728391 15.57638409 38.40830517 
17.73169731 15.56926588 38.38397312 
17.60030382 15.53801358 38.26190276 
17.7475358 15.57271454 38.41432083 
17.83174879 15.59799329 38.38570917 
17.81596492 15.58560974 38.42538827 
17.81740582 15.58646407 38.42952669 
17.47055878 15.51216794 38.15616593 
17.6358243 15.54136455 38.31012518 
17.80583315 15.5891604 38.4914876 
17.63499101 15.54602387 38.24489252 
17.6344578 15.54014455 38.30676618 
17.81776898 15.5877239 38.43091498 
17.77471768 15.57850342 38.40982719 
17.63680287 15.54800569 38.2632379 
17.71502505 15.56852745 38.35463946 
17.46939668 15.51230794 38.15553654 
17.35707843 15.48526029 38.05952664 
17.59634454 15.53536295 38.25210731 
17.71245901 15.56312681 38.33309101 
17.57088548 15.55072588 38.34755005 
17.52448926 15.52427652 38.21140341 
17.45185431 15.50805358 38.13888248 
17.52351315 15.52323983 38.2099672 
17.92164576 15.60921197 38.54586884 
17.97156359 15.6158826 38.56507722 
17.92850307 15.60417939 38.55265903 
18.0122483 15.61884485 38.5898537 

그리고 세트 B가 나는 무작위로 각 데이터 세트에서 변수 (V1, V2, V3)의 한 행을 선택하여 그들을 혼합 할

V1 V2 V3 
18.331 15.564 38.206 
18.341 15.573 38.234 
18.368 15.609 38.355 
18.341 15.568 38.209 
18.259 15.563 38.417 
18.352 15.594 38.308 
18.336 15.573 38.237 
18.346 15.584 38.277 
18.285 15.516 38.046 
18.292 15.514 38.035 
18.293 15.518 38.054 
18.261 15.482 37.935 
18.279 15.508 38.026 
18.272 15.502 37.999 
18.29 15.515 38.012 
18.257 15.476 37.916 
18.7 15.85 39.01 
18.3 15.53 38 
18.3 15.5 37.98 
18.46 15.72 38.67 
18.49 15.76 38.91 
18.53 15.78 38.99 
18.3 15.52 38.05 
18.45 15.67 38.47 
18.33 15.56 38.19 
18.33 15.56 38.17 
18.39 15.63 38.41 
18.5 15.73 38.62 
18.33 15.56 38.17 
18.34 15.59 38.27 

처럼

데이터 집합 A는 보인다 서로 다른 비율로 V1, V2, V3 세트를 새로 만듭니다. C1 = 10 % A + 90 % B, C2 = 20 % A + 80 % B, C3 = 30 % A + 70 % B. 이 종류의 선택을 1000 번 실행하여 특정 혼합 비율로 각각의 새 데이터 세트에 대해 1000 개의 데이터 행렬을 작성하고자합니다. 누구든지 R에서 그렇게하는 방법을 알고 있습니까?

답변

0

당신은이 같은 ifelse를 사용할 수 있습니다

a = data.frame(v1 = rep(15,30),v2 = rep(20,30),v3 = rep(25,30)) 
b = data.frame(v1 = rep(5,30),v2 = rep(0,30),v3 = rep(-5,30)) 

c = data.frame(v1 = ifelse(runif(nrow(a)) < 0.1, a$v1, b$v1), 
       v2 = ifelse(runif(nrow(a)) < 0.2, a$v2, b$v2), 
       v3 = ifelse(runif(nrow(a)) < 0.3, a$v3, b$v3) 
) 

를이 경우, runif(nrow(a)) 당신이 또는 중 하나에서 값을 선택하는 데 도움이됩니다 0과 1 사이의 균일 한 난수를 생성한다 (B). 비율은 ifelse 내부에 0.1, 0.2 및 0.3으로 설정됩니다.