2017-03-01 9 views
1

Ich versuche, einen Datenrahmen mit Hilfe von Spaltennamen in einem Objekt zu unterteilen. Ist das möglich? Hier ein Beispiel:Unterteilung mit Spaltennamen als Objekte

ReallyLongColNameA <- c(1,2,3,4,5,6) 

ReallyLongColNameB <- c(6,5,4,3,2,1) 

ReallyLongColNameC <- c(7,8,9,10,11,12) 

X <- data.frame(ReallyLongColNameA, ReallyLongColNameB, ReallyLongColNameC) 

Kann ich einen Spaltennamen als solche:

ShortColNameB <- names(X[2]) 

und dann den Spaltennamen in Objekt gespeichert Teilmenge mit ShortColNameB

I Teilmenge kann die folgende:

subX <- X[X$ReallyLongColB == 6,] 

Zu erhalten:

ReallyLongColA ReallyLongColB ReallyLongColC 
1    6    7 

Aber was ist, wenn ich die folgende gewünschte Ausgabe, indem Sie die Spaltennamen in einem Objekt (ShortColNameB) ?:

ReallyLongColA ReallyLongColB 
1    6    
+3

Verwenden Sie '[' für die Teilmenge d. H. 'X [ShortColNameB]' – akrun

+0

Entschuldigen Sie die Änderungen an meiner ursprünglichen Frage. – PradeepLR

+0

Sie sagten, dass Sie einen Fehler von Ihrem Code erhalten. Was sagt der Fehler? –

Antwort

0

Sie können leicht entfernen Sie die letzte Spalte von subsetting auf Spaltennummern gespeichert wollte.

X[X[[ShortColNameB]]==6,c(1,2)]

Sie definieren, welche Zeilen Sie durch Filterung auf der ==6 wollen für ShortColNameB, und definieren Sie die Spalten, die Sie wollen, indem Sie die Zahlen der Auswahl (zum Beispiel der 1. und 2. Säule, A & B).

+0

JA! Vielen Dank! Ich habe gerade das gleiche Ergebnis von: 'X [X [" ReallyLongColNameA "] == 6, c (" ReallyLongColNameA ", ShortColNameB)]' – PradeepLR

Verwandte Themen