Erhalte Indizes von K kleinsten oder größten Elementen in jeder Zeile einer Matrix in R

8

Wie erhält man Indizes von K kleinsten oder größten Elementen in jeder Zeile einer Matrix in R?

z. Ich habe eine Matrix:

%Vor%

Ich möchte in jeder Zeile eine Indexmatrix von etwa 2 kleinsten Elementen erhalten (die Bindungen in irgendeiner Weise brechen). Das Ergebnis sollte folgendes Format haben:

%Vor%

Ich probierte einige Befehle mit sort , apply , arrayInd , which usw. Aber immer noch nicht in der Lage, das gewünschte Ergebnis zu bekommen. Jede Hilfe ist willkommen.

    
N D Thokare 24.12.2012, 06:06
quelle

2 Antworten

11
%Vor%

Neben der Verwendung von sinking = TRUE könnten Sie diese auch für die zwei größten hintereinander verwenden:

%Vor%     
42- 24.12.2012 06:12
quelle
0

Was ist mit

?
  • finde die Indizes von k größten Werten in jeder Zeile

    %Vor%
  • finde die Indizes von k kleinsten Werten in jeder Zeile

    %Vor%

In Ihrem Beispiel, für k <- 2 , führt der erste zu

%Vor%

und letzteres ergibt

%Vor%

Ändern Sie den zweiten Parameter von apply von 1 auf 2, um die Spalten zu durchsuchen.

    
D. Kaufmann 03.12.2015 09:47
quelle

Tags und Links