2015-03-27 4 views
7

Ich möchte mit dem Namen der Spalten als ZeichenketteWie mit Formel als Zeichenfolge verwenden dcast.data.table

Meine Tabelle mit Formel für eine data.table Guss verwenden:

c1 c2 c3 
1  A  1 
1  B  2 
1  C  3 
2  A1 1 
2  B1 2 
2  C1 3 

Ich möchte Ergebnis haben:

c1 1 2 3 
1  A B C 
2  A1 B1 C1 

ich es mit dem Befehl tun konnte

dcast.data.table(dt, c1 ~ c3, value.var = "c2")

Aber ich möchte dcast in einer Funktion ausführen, die Param des Spaltennamens c1 als String hat. Zum Beispiel

f1 <- function(d, col_name1, col_name2, col_name3) { 
    dcast.data.table(d, col_name1 ~ col_name3, value.var = col_name2) 
} 

So nennen würde ich

f1(dt, "c1", "c2", "c3") 

Hoffnung jemand helfen kann!

+1

Was auch 'C1' passiert? – zx8754

+0

@ zx8754 Sorry für eine schlechte Frage wegen meiner falschen Einreichung. Ich habe meine Frage bearbeiten, also bitte -1 entfernen. Vielen Dank! –

+0

Ich habe es nicht abgelehnt. – zx8754

Antwort

7

dcast akzeptiert Formel auch als Zeichenfolge.

f1 <- function(d, col_name1, col_name2, col_name3) { 
    dcast.data.table(d, paste(col_name1, "~", col_name3), value.var = col_name2) 
} 

f1(dt, "c1", "c2", "c3") 
# c1 1 2 3 
# 1: 1 A B C 
# 2: 2 A1 B1 C1 

Beachten Sie, dass Sie laden müssen reshape2 nicht und Sie können direkt verwenden nur dcast statt dcast.data.table von Versionen 1.9.5+

Verwandte Themen