2017-08-25 5 views
1

Ich habe eine saubere tibble, wie unten dargestellt:R: tibble bewegen Spalten rudern & namen Spalt

df <- structure(list(created_week = c(31, 32, 33, 34), Rt_count = c(7, 
6, 5, 0), Cus_count = c(2, 1, 2, 1)), class = c("tbl_df", "tbl", 
"data.frame"), .Names = c("created_week", "Rt_count", "Cus_count" 
), row.names = c(NA, -4L)) 

Ich bin auf der Suche nach t gleichen tun() von Base mit einem tibble als Ergebnis und Zeilen Von df $ created_week mit ihrem Namen sind die Spalten Rt_count und Cus_count und müssen benannt werden. Ich kann einen einfachen und einfachen Weg nicht finden.

Vielen Dank für Ihre Hilfe.

+0

Ich bin mir nicht sicher, ob ich verstehe. Wenn Rt_count & Cus_count Spalten bleiben, transponiert das den Datenrahmen? Oder möchten Sie einfach die erste Spalte in Zeilennamen umwandeln? Für letzteres, check out 'tibble :: column_to_rownames' –

+0

@ Z.Lin column_to_rownames (tt, var =" toto ") Fehler: Spalte' num2' nicht gefunden – gabx

+0

Sie müssen angeben, welche Spalte in rowname konvertiert werden soll. Versuchen Sie 'df%>% column_to_rownames (" created_week ")%>% as.data.frame()'? –

Antwort

1

Umbuchen mein Kommentar als Antwort ...

Um rownames von df $ created_week zu schaffen, während Rt_count & Cus_count als Spalten zu verlassen, können Sie die column_to_rownames Funktion aus dem tibble Paket verwenden.

Sie erhalten eine Warnung erhalten, dass auf einem tibble Zeilennamen Einstellung ist veraltet, aber das ist in Ordnung, da wir es zurück zu data.frame konvertieren werden:

library(dplyr); library(tibble) 

df %>% 
    column_to_rownames("created_week") %>% 
    as.data.frame() 

    Rt_count Cus_count 
31  7   2 
32  6   1 
33  5   2 
34  0   1 

bearbeiten für Alternative, die ‚doesn t abhängig von tibble 's Funktion:

df <- as.data.frame(df) 
rownames(df) <- df$created_week 
df$created_week <- NULL 
+1

Ich möchte nur hinzufügen, das wird abgeschrieben werden. Siehe https://github.com/tidyverse/tibble/issues/123 für weitere Informationen – gabx

+0

Darn, ich habe gerade die Funktion vor einem Monat gelernt. In Ordnung, wird eine Alternative enthalten, die nur Basispakete verwendet ... –