Wählen Sie den letzten Wert in einer Zeile, nach Zeilen

8

Ich habe einen Datenrahmen, in dem jede Zeile ein Vektor von Werten unterschiedlicher Länge ist. Ich möchte einen Vektor des letzten wahren Wertes in jeder Reihe schaffen.

Hier ist ein Beispiel für einen Datenrahmen:

%Vor%

Der Vektor der Werte, die ich haben möchte, wäre daher c(2,6,3,4,1) .

Ich kann einfach nicht herausfinden, wie man R erhält, um den letzten Wert zu identifizieren.

Jede Hilfe ist willkommen!

    
jslefche 23.09.2011, 17:21
quelle

3 Antworten

14

Mach das, indem du drei Dinge kombinierst:

  • Identifizieren Sie NA -Werte mit is.na
  • Finde den letzten Wert in einem Vektor mit tail
  • Verwenden Sie apply , um diese Funktion auf jede Zeile in data.frame anzuwenden.

Der Code:

%Vor%     
Andrie 23.09.2011, 17:28
quelle
1

Hier ist eine Antwort mit Matrix-Subsetting:

%Vor%

Dieser Aufruf von max.col wählt die Position des letzten Nicht-NA-Werts in jeder Zeile aus (oder wählt die erste Position aus, wenn sie alle NA sind).

    
Frank 24.06.2015 05:09
quelle
0

Hier ist eine andere Version, die alle Unendlichkeiten, NA und NaNs entfernt, bevor das erste Element der umgekehrten Eingabe genommen wird:

%Vor%     
42- 23.09.2011 19:50
quelle

Tags und Links