2016-07-22 17 views
-5

Beispiel R Datenrahmen:subsetting Spalten in einer Datentabelle

n = c(2, 3, 5) 
s = c("aa", "bb", "cc") 
b = c(TRUE, FALSE, TRUE) 
df = data.frame(n, s, b) 

Ich kann leicht Subset Spalten in einem Datenrahmen wie folgt aus:

df.smaller <- df[c(1,2)] 

    n s 
1 2 aa 
2 3 bb 
3 5 cc 

Sehr praktisch!

Allerdings, mit Datatable (und ich dachte, es ist einfacher mit Datatable) Ich habe nicht gefunden einen so schnellen Weg, um das Gleiche zu tun. Wie kann ich schnell und einfach dasselbe mit einer Datentabelle machen?

dt = data.table(df) 
dt.smaller <- dt[c(1,2)] 

    n s  b 
1: 2 aa TRUE 
2: 3 bb FALSE 

werden mir die ersten zwei Zeilen zurückgeben. Wahrscheinlich ist es nur ein Komma oder etwas, das ich ändern muss, aber ich kann es nicht herausfinden.

+6

[Erstes Ergebnis] (http://stackoverflow.com/questions/28094645/select-subset-of-columns-in-data-table -r) von Google-Suche ... – Sotos

+0

Ich sah das auch. Aber ich dachte, dass es einen einfacheren Weg wie df [c (1,2)] geben muss. Wenn nicht, ist das fair. – Annamarie

+2

Bitte lesen Sie die [Vignetten] (https://github.com/Rdatatable/data.table/wiki/Getting-started). – Arun

Antwort

2

Wir müssen verwenden with = FALSE

dt[, 1:2, with = FALSE] 

Diese im ?data.table erklärt

mit: Standardmäßig mit = TRUE und j im Rahmen von x ausgewertet wird; Spaltennamen können als Variablen verwendet werden.

Wenn mit j = FALSE ein Zeichenvektor der Spaltennamen, ein numerisches Vektor von Spaltenpositionen oder der Form startcol auszuwählen: endcol, und der Wert zurückgegeben wird, ist immer ein data.table. mit FALSE = ist oft nützlich in data.table Spalten auswählen dynamisch

Verwandte Themen