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.

2voto

CamiloEr Punkte 1152

Kürzlich hatte ich das gleiche Problem bei der Verwendung von htmlTable() (‘htmlTable’ Paket) und fand eine einfachere Lösung: Konvertieren Sie den Datenrahmen mit as.matrix() in eine Matrix:

htmlTable(as.matrix(df))

Und stellen Sie sicher, dass die Zeilenbezeichnungen nur Indizes sind. as.matrix() behält die gleichen Spaltennamen bei. Das war's.

UPDATE

Nach dem Kommentar von @DMR habe ich nicht bemerkt, dass htmlTable() den Parameter rnames = FALSE für solche Fälle hat. Eine bessere Antwort wäre also:

htmlTable(df, rnames = FALSE)

1voto

Flo Punkte 53

Meine Antwort ist eigentlich für einen Kommentar gedacht, aber da ich nicht genug Reputation habe, denke ich, dass sie immer noch als Antwort relevant ist und jemandem hilft.

Ich finde datatable in der Bibliothek DT robust genug, um Zeilenbezeichnungen und Spaltenbezeichnungen zu handhaben.

Bibliothek DT
datatable(df, rownames = FALSE)  # keine Zeilenbezeichnungen

Siehe https://rstudio.github.io/DT/ für Anwendungsszenarien

0voto

Quinten Punkte 12670

Ein weiterer einfacher Weg besteht darin, c() auf Ihre rownames zuzuweisen, um Ihre Zeilennamen wie folgt loszuwerden (Danke @Anders für die Daten):

df <- data.frame(values = rnorm(3), group = letters[1:3],
                  row.names = paste0("RowName", 1:3))
df
#>             values group
#> RowName1 0.4189236     a
#> RowName2 1.8604397     b
#> RowName3 0.7030387     c
rownames(df) <- c()
print(df)
#>      values group
#> 1 0.4189236     a
#> 2 1.8604397     b
#> 3 0.7030387     c

Erstellt am 2022-07-09 mit dem reprex-Paket (v2.0.1)

0voto

Lil' Pete Punkte 115

Ich wollte nur hinzufügen, dass data.table eine Option zum Entfernen von Zeilenbeschriftungen beim Drucken von data.table's hat.

options(datatable.print.rownames = F)

Dies hat mein Problem in der Konsole und beim Rendern von RMarkdown-Dateien gelöst. Weitere Druckoptionen finden Sie hier

0voto

Mtl_1642 Punkte 13

Einfach versuchen rownames(df) <- ""

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