Ich erstelle einen Datenrahmen mit diesem Code:
df <- data.frame(dbGetQuery(con, paste('select * from test')))
Was dazu 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
Ich bin dann zu versuchen , die Zeilennamen zu entfernen (1, 2, 3, usw.) wie vorgeschlagen hier durch diesen Code verwenden:
rownames(df) <- NULL
Aber wenn ich dann ausdrucke, werden df
immer noch die Zeilennamen angezeigt. Gibt es eine Möglichkeit, die Zeilennamen beim Erstellen des Datenrahmens nicht einzubeziehen? Ich habe einen Vorschlag gefunden, row.name = FALSE
aber als ich ihn ausprobiert habe, habe ich nur Fehler erhalten (ich habe ihn möglicherweise an der falschen Stelle platziert).
BEARBEITEN: Ich möchte den Datumsrahmen in eine HTML-Tabelle konvertieren und möchte nicht, dass der Zeilenname in der Tabelle vorhanden ist.
row.names = FALSE
inwrite.table
relevant?attributes(df)$row.names <- NULL
alle Werte von df löschtdf
in das Terminal tippe, das dann den Datenrahmen druckt. Ich habe keine,write.table
weil ich keine Tabelle schreibe (und wenn ich das tue, werde ich xtable verwenden).print(df, row.names = F)
sollte es einfach tunAntworten:
Sie haben die Zeilennamen erfolgreich entfernt. Die
print.data.frame
Methode 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
print.data.frame
mit dem Argumentrow.names
als unterdrückenFALSE
.print(df1, row.names = FALSE) # values group # -1.4345829 d # 0.2182768 e # -0.2855440 f
Bearbeiten: Wie in den Kommentaren geschrieben, möchten Sie dies in HTML konvertieren. Vom
xtable
undprint.xtable
siehe Dokumentation, können Sie , dass das Argumentinclude.rownames
den Trick.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>
quelle
attributes(df)
habe, erhalte ich folgendes Ergebnis :$row.names [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
. Bedeutet dies nicht, dass die Zeilennamen noch vorhanden sind? Grundsätzlich möchte ich den DF in eine HTML-Tabelle konvertieren und möchte nur nicht, dass der Zeilenname vorhanden ist.data.frame
"list
Variablen mit der gleichen Anzahl von Zeilen mit eindeutigen Zeilennamen in der Klasse 'data.frame
' ist. Wenn keine Variablen enthalten sind, bestimmen die Zeilennamen die Anzahl der Zeilen." Daher sind Zeilennamen in den Attributen immer vorhanden. Wie machst du deine Konvertierung?print(xtable(df), type="html", file="example.html")
aber dies schließt die Zeilennamen ein.include.rownames
Argument verwenden.Ja, ich weiß, es ist über ein halbes Jahr später und ein bisschen spät, ABER
row.names(df) <- NULL
funktioniert. Für mich zumindest :-)
Und wenn Sie wichtige Informationen in row.names haben, wie zum Beispiel Datumsangaben, mache ich nur:
Dadurch wird am Ende eine neue Spalte hinzugefügt, wenn Sie dies jedoch am Anfang Ihres Datenrahmens möchten
df <- df[,c(7,1,2,3,4,5,6,...)]
Hoffe das hilft denen von Google :)
quelle
Wenn Sie Ihre Tabelle über formatieren möchten
kable
, können Sie verwendenrow.names = F
kable(df, row.names = F)
quelle
Meine Antwort ist zwar für einen Kommentar gedacht, aber da ich nicht genug Ruf habe, denke ich, dass sie als Antwort immer noch relevant sein und jemandem helfen wird.
Ich finde
datatable
inlibrary DT
robust zu handhabenrownames
, undcolumnames
Library DT datatable(df, rownames = FALSE) # no row names
siehe https://rstudio.github.io/DT/ für Nutzungsszenarien
quelle
Vor kurzem hatte ich das gleiche Problem bei der Verwendung von htmlTable () ('htmlTable'-Paket) und fand eine einfachere Lösung: Konvertieren Sie den Datenrahmen in eine Matrix mit as.matrix ():
Und stellen Sie sicher, dass die Rownamen nur Indizes sind. as.matrix () behält die gleichen Spaltennamen bei. Das ist es.
AKTUALISIEREN
Nach dem Kommentar von @DMR habe ich nicht bemerkt, dass
htmlTable()
der Parameterrnames = FALSE
für solche Fälle vorliegt . Eine bessere Antwort wäre also:htmlTable(df, rnames = FALSE)
quelle
rnames
Parameter dafür:htmlTable(df, rnames = FALSE)