104 Stimmen

Entfernen der Anzeige von Zeilennamen aus dem Datenrahmen

Ich erstelle ein DataFrame mit diesem Code:

df <- data.frame(dbGetQuery(con, paste('select * from test')))

Was zu folgendem Ergebnis führt:

    UID      BuildingCode   AccessTime
1   123456   BUILD-1        2014-06-16 07:00:00
2   364952   BUILD-2        2014-06-15 08:00:00
3    95865   BUILD-1        2014-06-06 09:50:00

Dann versuche ich die Zeilenbezeichnungen (1, 2, 3 usw.) wie hier vorgeschlagen mit diesem Code zu entfernen:

rownames(df) <- NULL

Aber wenn ich dann df ausdrucke, werden die Zeilenbezeichnungen immer noch angezeigt. Gibt es einen Weg, die Zeilenbezeichnungen beim Erstellen des DataFrames nicht zu verwenden? Ich habe einen Vorschlag zu row.name = FALSE gefunden, aber als ich es versuchte, erhielt ich nur Fehlermeldungen (möglicherweise habe ich es an der falschen Stelle platziert).

EDIT: Was ich tun möchte, ist das DataFrame in eine HTML-Tabelle umzuwandeln, und ich möchte nicht, dass die Zeilenbezeichnung in der Tabelle erscheint.

127voto

Anders Ellern Bilgrau Punkte 10093

Sie haben die Zeilennamen erfolgreich entfernt. Die Methode print.data.frame zeigt nur die Zeilennummern an, wenn keine Zeilennamen vorhanden sind.

df1 <- data.frame(values = rnorm(3), group = letters[1:3],
                  row.names = paste0("RowName", 1:3))
print(df1)
#            values group
#RowName1 -1.469809     a
#RowName2 -1.164943     b
#RowName3  0.899430     c

rownames(df1) <- NULL
print(df1)
#     values group
#1 -1.469809     a
#2 -1.164943     b
#3  0.899430     c

Sie können das Drucken der Zeilennamen und -nummern in print.data.frame mit dem Argument row.names als FALSE unterdrücken.

print(df1, row.names = FALSE)
#     values group
# -1.4345829     d
#  0.2182768     e
# -0.2855440     f

Bearbeiten: Wie in den Kommentaren erwähnt, möchten Sie dies in HTML konvertieren. Aus der Dokumentation von xtable und print.xtable können Sie sehen, dass das Argument include.rownames den Trick macht.

library("xtable")
print(xtable(df1), type="html", include.rownames = FALSE)
#
#
#
#
#
#
#
#  values   group     -0.34   a    -1.04   b    -0.48   c

41voto

Nedinator Punkte 1042

Ja, ich weiß, es ist über ein halbes Jahr später und ein bisschen spät, ABER

row.names(df) <- NULL

funktioniert. Zumindest für mich :-)

Und wenn Sie wichtige Informationen in row.names haben, wie zum Beispiel Daten, mache ich einfach :

df$Dates <- as.Date(row.names(df))

Dies fügt eine neue Spalte am Ende hinzu, aber wenn Sie sie am Anfang Ihres Datenrahmens möchten

df <- df[,c(7,1,2,3,4,5,6,...)]

Hoffentlich hilft das denen von Google :)

16voto

Wenn Sie Ihre Tabelle über kable formatieren möchten, können Sie row.names = F verwenden

kable(df, row.names = F)

8voto

Soumya Boral Punkte 1023

Ein dplyr Lösung :

df = df %>% `rownames<-`( NULL )

5voto

...oder einfach:

library(tidyverse)

df_data_with_rownames %>%
ETWAS ERLEDIGEN %>%
tibble::remove_rownames() -> wrangled_df_data_without_rownames

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X