回答:
見る ?which.max
> which.max( matrix[,2] )
[1] 2
を参照してください?order
。最後のインデックス(または最初に、降順)が必要なだけなので、これでうまくいくはずです。
order(matrix[,2],decreasing=T)[1]
order
各要素のインデックスを返しますが、要素の値でソートされています。リストが最初にソートされた場合、rank
各要素が持つインデックスを返します。したがって、order
現在のインデックス値を返します。パンダの用語では「インデクサー」として使用されます。
以下はどうですか。ここで、yはマトリックスの名前であり、マトリックス全体の最大値を探しています。
row(y)[y==max(y)]
行を抽出する場合:
y[row(y)[y==max(y)],] # this returns unsorted rows.
ソートされた行を返すには、以下を使用します。
y[sort(row(y)[y==max(y)]),]
このアプローチの利点は、条件付き内部を必要なものに変更できることです。また、col(y)
ハンギングコンマの位置と場所を使用して、列を抽出することもできます。
y[,col(y)[y==max(y)]]
特定の列の最大の行のみを検索するには、たとえば列2を使用できます。
seq(along=y[,2])[y[,2]==max(y[,2])]
ここでも、条件は異なる要件を探すために柔軟です。
追加のアイデアについては、Phil Spectorの優れた「SおよびS-Plus入門」の第5章を参照してください。