2017-07-22 7 views
1

Ich kann wählen mehrere Bereiche von Spalten in einer data.table mit einem numerischen Vektor wie c(1:5,27:30). Gibt es eine Möglichkeit, das Gleiche mit Spaltennamen zu tun? Zum Beispiel, in einer Form ähnlich col1:col5,col27:col30?wählen Sie mehrere Bereiche von Spalten in data.table mit Spaltennamen

+0

Sie würden dies leichter zu beantworten, indem Sie ein Beispiel machen. Die 'col1: col5'-Syntax kann an einigen Stellen vorkommen und ich weiß nicht, was Sie meinen. – Frank

+0

data.table [, col1: col5] - das ist der einzige Kontext, auf den ich Bezug nehme, wenn das hilft – AlexR

Antwort

1

Sie können mit dplyr:

df <- data.frame(a=1, b=2, c=3, d=4, e=5, f=6, g=7) 
dplyr::select(df, a:c, f:g) 

a b c f g 
1 2 3 6 7 
0

Ich bin nicht sicher, ob meine Antwort effizient ist, aber ich denke, dass Sie eine Abhilfe zumindest geben könnte, falls Sie mit data.table arbeiten müssen. Mein Vorschlag ist, data.table in Verbindung mit cbind zu verwenden. So könnten Sie haben:

df <- data.frame(a=1, b=2, c=3, d=4, e=5, f=6, g=7) 
multColSelectedByName<- cbind(df[,a:c],df[,f:g]) 
#a b c f g 
#1: 1 2 3 6 7 

Ein Punkt, den man vorsichtig sein soll, ist, dass, wenn es nur eine Spalte in einer der Auswahlmöglichkeiten ist zum Beispiel df[,f] dann der Name dieser Spalte so etwas wie V2 sein würde und nicht f . In einem solchen Fall könnte man verwenden:
multColSelectedByName<- cbind(df[,a:c],f=df[,f])

+0

Dies ist die temporäre Lösung, die ich benutzt habe, aber danke für die Eingabe. – AlexR

Verwandte Themen