2011-10-18 16 views

Odpowiedz

33

Użyj sample w wierszach z replace=TRUE lub replace=FALSE.

Jeśli X jest oryginalna matryca następnie

X[sample(nrow(X),size=5,replace=TRUE),] 

lub

X[sample(nrow(X),size=5,replace=FALSE),] 

powinno działać. (Może to być bardziej czytelny, jeśli zdecydujesz próbkę najpierw: s <- sample(...) a następnie podzbiór: newmat <- X[s,])

8

użyć sample funkcję:

x <- matrix(1:1000, nrow=100) 

z wymianą:

x[sample(1:100, 5, replace=TRUE), ] 
    [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] 
[1,] 19 119 219 319 419 519 619 719 819 919 
[2,] 51 151 251 351 451 551 651 751 851 951 
[3,] 42 142 242 342 442 542 642 742 842 942 
[4,] 48 148 248 348 448 548 648 748 848 948 
[5,] 73 173 273 373 473 573 673 773 873 973 

wymiana wihtout:

x[sample(1:100, 5, replace=FALSE), ] 
    [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] 
[1,] 64 164 264 364 464 564 664 764 864 964 
[2,] 67 167 267 367 467 567 667 767 867 967 
[3,] 20 120 220 320 420 520 620 720 820 920 
[4,] 17 117 217 317 417 517 617 717 817 917 
[5,] 6 106 206 306 406 506 606 706 806 906 
0

To se ems działa lepiej z ramkami danych:

sample_df<-x[sample.int(nrow(x),size=100,replace=TRUE),] 
Powiązane problemy