it-swarm.com.de

Anzeige der Zeilennamen aus dem Datenrahmen entfernen

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.

46
Dom Abbott

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>
67

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 :) 

20
NealC

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.

0
Camilo Erasso