Ich bin neu in R und fragte mich, ob jemand erklären könnte, warum, wenn eine Zeile zu einem leeren data.frame hinzugefügt wird, nachdem die Spalten benannt wurden, die Spaltennamen umbenannt werden. Dies tritt nicht auf, wenn dem data.frame eine Zeile hinzugefügt wurde, bevor die Spalten benannt werden, oder wenn eine leere Zeile bei der Definition von data.frame enthalten ist.Datenrahmen Spaltennamen für leere Daten.frame
Spaltennamen, bevor Zeile zusätzlich definiert (die neuen Spaltennamen beobachten, 'XaXb'):
df1 <- data.frame(character(), character(), stringsAsFactors = FALSE)
colnames(df1) <- c("one", "two")
df1 <- rbind(df1, c("a", "b"))
df1
# X.a. X.b.
#1 a b
Zeile hinzugefügt, bevor Spalte definiert:
df2 <- data.frame(character(), character(), stringsAsFactors = FALSE)
df2 <- rbind(df2, c("a", "b"))
colnames(df2) <- c("one", "two")
df2
# one two
#1 a b
Spaltennamen vor der Zeile hinaus in einem definierte Datenrahmen, der mit einer leeren Zeile definiert ist:
df3 <- data.frame(character(1), character(1), stringsAsFactors = FALSE)
colnames(df3) <- c("one", "two")
df3 <- rbind(df3, c("a", "b"))
df3
# one two
#1
#2 a b
Was ist der Anwendungsfall zum Erstellen eines namenlosen (aber nicht spaltenlosen) data.frame? Obwohl ich nicht behaupten kann, dass es ein wenig "aus" ist, kann ich mir nicht vorstellen, wann es ausgelöst werden würde. – r2evans
Gut entdeckt. Ich benutzte den leeren data.frame mit Spalten und benutzte rbind, bevor ich erkannte, dass der Code, den ich in R umsetzte, mir freundlicher wäre, wenn ich einen Index benutzte. Jetzt benutze ich 'df [i,] <- c (" a "," b ")' und es gibt nichts Seltsames, was ich sehen kann. Wie ich in meiner Frage gesagt habe, bin ich neu bei R und dachte, dass ich es vermeiden könnte, diesem ungewöhnlichen Datensatz einen Index zuzuordnen. Es ist ungewöhnlich, weil es ** algorithmisch generiert **. Warum dies tabellarisch sein müsste, ist eine andere Frage! – MellifluousMelt