簡體   English   中英

使用apply解析兩個data.frames [R]

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM