[英]Using apply to parse through two data.frames [R]
我正在尋找一種向量化操作的簡單方法,該操作采用向量的順序值,並將其用作給定列的索引。 例如:
dataf <- replicate(10, sample(0:100,10,rep=TRUE))
> dataf
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,] 11 70 31 46 55 7 87 12 93 16
[2,] 62 55 30 26 65 31 4 90 47 90
[3,] 61 28 16 30 31 72 32 1 14 13
[4,] 62 93 4 51 62 50 1 79 54 13
[5,] 86 29 22 18 33 15 24 9 19 10
[6,] 64 84 81 76 50 50 71 52 90 51
[7,] 0 28 53 20 68 49 31 38 39 30
[8,] 23 26 92 26 48 75 51 7 31 2
[9,] 67 18 83 100 24 17 5 32 16 31
[10,] 51 23 4 81 77 85 57 67 90 74
ind <- c(1:10)
使用“ ind”作為每一行的列索引,我要執行的操作類似於以下操作:
dataf[1, ind[1]]
dataf[2, ind[2]]
...
dataf[10, ind[10]]
我正在尋找結果是單個向量:
> result
[1] 11 55 16 51 33 50 31 7 16 74
我希望避免使用循環-使用矢量化方法有什么方法可以實現此目的?
謝謝AG
你要
dataf[cbind(1:10, ind)]
當然,如果您真的只想要對角線,則可以
diag(dataf)
但我假設您的ind
值並不總是連續的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.