Wie werden die Zeilennamen eines Datenrahmens festgelegt, der mit dem Pipe-Operator%>% übergeben wird?
Ich habe einen Datenrahmen, der ich bindcast
ing mit demreshape2
package, und ich möchte die erste Spalte entfernen und stattdessen die Zeilennamen des Datenrahmens verwenden.
Original dataframe, vordcast
:
> corner(df)
ID_full gene cpm
1 S36-A1 DDX11L1 0
2 S36-A1 WASH7P 0
3 S36-A1 MIR1302-2 0
4 S36-A1 FAM138A 0
5 S36-A1 OR4F5 0
pivot
Funktion um die Tabelle zu dcasten:
library(reshape2)
pivot <- function(x){
castTable <- x %>% dcast(ID_full ~ gene, value.var="cpm")
}
Nachdcast
, eingewickelt in meinpivot
Funktion:
> corner(df)
ID_full 1060P11.3 A1BG A1BG-AS1 A1CF
1 S36-A1 0 0 0 0
2 S36-A10 0 0 0 0
3 S36-A11 0 0 0 0
4 S36-A12 0 0 0 0
5 S36-A2 0 0 0 0
Ich möchte, dass ID_full zu den Künstlernamen wird und nicht mehr als Spalte existiert, die nach @ weitergeleitet wirdcasting
. Ich kann dies in mehreren Zeilen tun, wobei der Datenrahmen jedes Mal ersetzt wird, aber ich möchte alles mit dem @ tu%>%
Operator
Der beste Versuch, den ich mir vorstellen kann, würde so etwas beinhalten, aber offensichtlich funktioniert es nicht:
library(dplyr)
df <- df %>% pivot(.) %>% with(., row.names=df[,1])
Ich würde mich über Vorschläge freuen ... dieses Ärgernis macht mich verrückt!
AKTUALISIEREN
Danke für deine Antworten
Dieser Ausdruck funktioniert gut:
df <- df %>% pivot(.) %>% `rownames<-`(.[,1]) %>% select(-ID_full)
> corner(df)
1060P11.3 A1BG A1BG-AS1 A1CF A2M
S36-A1 0 0 0 0 0.00000
S36-A10 0 0 0 0 0.00000
S36-A11 0 0 0 0 0.00000
S36-A12 0 0 0 0 1.62189
S36-A2 0 0 0 0 1170.95000