Bereiche erweitern, die durch die Spalten "from" und "to" definiert sind

8

Ich habe einen Datenrahmen, der "name" der US-Präsidenten enthält, die Jahre, in denen sie im Amt beginnen und enden (Spalten "from" und "to" ). Hier ist ein Beispiel:

%Vor%

... und die Ausgabe von dput :

%Vor%

Ich möchte einen Datenrahmen mit zwei Spalten erstellen ( "name" und "year" ), mit einer Zeile für jedes Jahr, in dem ein Präsident im Amt war. Daher muss ich für jedes Jahr eine regelmäßige Sequenz von " from " bis "to" erstellen. Hier ist meine erwartete:

%Vor%

Ich weiß, dass ich data.frame(name = "Bill Clinton", year = seq(1993, 2001)) verwenden kann, um Dinge für einen einzelnen Präsidenten zu erweitern, aber ich kann nicht herausfinden, wie ich für jeden Präsidenten iterieren soll.

Wie mache ich das? Ich fühle, dass ich das wissen sollte, aber ich zeichne ein Leerzeichen.

Aktualisieren 1

OK, ich habe beide Lösungen ausprobiert und erhalte einen Fehler:

%Vor%     
edgester 15.07.2012, 18:30
quelle

5 Antworten

11

Sie können das Paket plyr verwenden:

%Vor%

Wenn es wichtig ist, dass die Daten nach Jahr sortiert sind, können Sie die Funktion arrange verwenden:

%Vor%

Edit 1: Nach dem "update 1" von @gitester ist es sinnvoller, adply für Präsidenten mit nichtkonsequenten Begriffen zu verwenden:

%Vor%     
flodel 15.07.2012, 18:36
quelle
10

Hier ist eine data.table Lösung. Es hat die nette (wenn auch geringfügige) Eigenschaft, die Präsidenten in ihrer gelieferten Reihenfolge zu belassen:

%Vor%

Bearbeiten: Um Präsidenten mit nicht aufeinanderfolgenden Begriffen zu behandeln, verwenden Sie stattdessen Folgendes:

%Vor%     
Josh O'Brien 15.07.2012 20:00
quelle
3

Hier ist eine dplyr Lösung:

%Vor%

h / t: Zypern

    
Ben 30.06.2016 13:22
quelle
1

Hier ist eine schnelle Basis- R Lösung, wobei Df Ihre data.frame :

ist %Vor%

Es gibt einige Warnungen über Zeilennamen, scheint aber die korrekte data.frame zurückzugeben.

    
Jason Morgan 16.07.2012 04:09
quelle
1

Eine weitere base Lösung:

%Vor%     
Henrik 15.10.2017 17:32
quelle

Tags und Links