對於模糊的問題標題,我找不出更具體的東西。R索引問題
我有3×2矩陣c
:
> c
[,1] [,2]
[1,] 1 2
[2,] 1 3
[3,] 2 3
這是ncol(c) == 2
重要。
我也有矩陣ind
:
> ind
[,1] [2] [,3] [,4]
[1,] 2 2 2 1
[2,] 1 1 2 2
[3,] 2 2 2 1
該nrow(c) == nrow(ind)
,而矩陣ind
的值是1和2(比如列索引對C的每一行)
是很重要的就是我想要得到的是矩陣a
具有相同的灰暗ind
這樣a[i,j] == c[i,ind[i,j]]
:
> a
[,1] [2] [,3] [,4]
[1,] 2 2 2 1
[2,] 1 1 3 3
[3,] 3 3 3 2
我可以做的不夠全面的情況類似,例如東西,如果nrow(c) == 1
我將使用apply
:
> apply(c,2,function(x){return(matrix(x[ind], nrow(ind)))})
我知道有一種方法,通過使用mapply 2只列出了迭代,但
1)我不知道什麼是最好的方式來表示行列表 2)我想這個解決方案醜陋
什麼是最好的方式來實現我在這裏descibed?
你想初始化或檢查布爾條件'a [i,j] == c [i,ind [i,j]]' – Subs
不知道你是什麼意思?我的意思是,這個條件對任何我和j來說都是正確的。但我不知道如何寫在很好的矢量化的形式。這個想法是在這個線程 –
問題好吧,你用了2等於,但現在我知道你想用該等式初始化它 – Subs