Ich erstelle einen Datenrahmen mit diesem Code:
df <- data.frame(dbGetQuery(con, paste('select * from test')))
Welche Ergebnisse ergeben sich daraus:
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
Ich versuche dann, die Zeilennamen (1, 2, 3 usw.) wie vorgeschlagen hier zu entfernen, indem Sie diesen Code verwenden:
rownames(df) <- NULL
Wenn ich jedoch df
ausdrucken möchte, werden immer noch die Zeilennamen angezeigt. Gibt es eine Möglichkeit, die Zeilennamen beim Erstellen des Datenrahmens nicht anzugeben? Ich habe einen Vorschlag zu row.name = FALSE
gefunden, aber als ich es ausprobierte, bekam ich nur Fehler (ich habe es vielleicht an der falschen Stelle platziert).
EDIT: Ich möchte das Datumsfeld in eine HTML-Tabelle konvertieren und möchte nicht, dass der Zeilenname in der Tabelle vorhanden ist.
Sie haben die Rownames erfolgreich entfernt. Die print.data.frame
-Methode zeigt nur die Zeilennummern an, wenn keine Namen 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 Namen und Zahlen in print.data.frame
mit dem Argument row.names
unterdrücken.
print(df2, row.names = FALSE)
# values group
# -1.4345829 d
# 0.2182768 e
# -0.2855440 f
Bearbeiten: Wie in den Kommentaren beschrieben, möchten Sie dies in HTML konvertieren. In den Dokumenten xtable
und print.xtable
können Sie sehen, dass das Argument include.rownames
den Trick ausführen wird.
library("xtable")
print(xtable(df1), type="html", include.rownames = FALSE)
#<!-- html table generated in R 3.1.0 by xtable 1.7-3 package -->
#<!-- Thu Jun 26 12:50:17 2014 -->
#<TABLE border=1>
#<TR> <TH> values </TH> <TH> group </TH> </TR>
#<TR> <TD align="right"> -0.34 </TD> <TD> a </TD> </TR>
#<TR> <TD align="right"> -1.04 </TD> <TD> b </TD> </TR>
#<TR> <TD align="right"> -0.48 </TD> <TD> c </TD> </TR>
#</TABLE>
Ja, ich weiß, es ist über ein halbes Jahr später und etwas spät, ABER
row.names(df) <- NULL
funktioniert. Für mich zumindest :-)
Und wenn Sie wichtige Informationen in row.names wie beispielsweise Datumsangaben haben, mache ich einfach Folgendes:
df$Dates <- as.Date(row.names(df))
Dadurch wird am Ende eine neue Spalte hinzugefügt, die Sie jedoch am Anfang Ihres Datenrahmens haben möchten
df <- df[,c(7,1,2,3,4,5,6,...)]
Hoffe das hilft denen von Google :)
Vor kurzem 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 Rownames nur Indizes sind. as.matrix () behält die gleichen Spaltennamen bei. Das ist es.