2015-05-03 108 views
2

我有一個矩陣,t3(唯一值= t1,其中包含10個值,隨機測距,非連續從0:9)更新非連續值

set.seed(19) 
t3 = c(matrix(sample(t1),5,5)) 

與在矢量25倍的值

t3 
[1] 1 4 5 0 2 9 8 3 7 6 1 4 5 0 2 9 8 3 7 6 1 4 5 0 2 

然後我就需要一套新的值來更新矩陣T3,給出固定的規則t2

t1 <-c(0,1,2,3,4,5,6,7,8,9) 
t2 <-c(0,1,3,2,5,4,7,6,9,8) 
newrule <-rbind(t1,t2) 

newrule 
    [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] 
t1 0 1 2 3 4 5 6 7 8  9 
t2 0 1 3 2 5 4 7 6 9  8 

預期的結果將是一個矢量t4,其中矢量t3的值設置t1更新爲t2

預期的結果:

t4 
[1] 1 5 4 0 3 8 9 2 6 7 1 5 4 0 3 8 9 2 6 7 1 5 4 0 3 
+0

請使用' set.seed' –

+0

如果您想以相同的方式對兩個向量進行採樣,可以使用'idx < - sample(1:100); t3 < - t1 [idx]; t4 < - t2 [idx]' – Frank

+0

@DavidArenburg爲什麼在這個意義上它是必要的?謝謝 – 9StoriesAround

回答

1

TR下面

newrule[2, match(t3, newrule[1, ])] 
## [1] 1 5 4 0 3 8 9 2 6 7 1 5 4 0 3 8 9 2 6 7 1 5 4 0 3 
+1

它適用於我的向量包含10000個值與511個變量! – 9StoriesAround