Ich erinnere mich, irgendwo gelesen zu haben, dass as.tibble()
ein Alias für as_data_frame()
ist, aber ich weiß nicht, was genau ein Alias in der Programmiersprache ist. Ähnelt es einem Wrapper?
Ich denke also, dass meine Frage wahrscheinlich auf den Unterschied in den möglichen Verwendungen zwischen tbl_df()
und as_data_frame()
zurückzuführen ist: Was sind die Unterschiede zwischen ihnen, falls vorhanden?
Genauer gesagt, wenn ich ein (nicht-tibbles) Datenframe df
verwende, mache ich es oft zu einem tibble, indem ich Folgendes benutze:
Würde nicht
%Vor% das gleiche tun? Wenn ja, gibt es andere Fälle, in denen die beiden Funktionen tbl_df()
und as_data_frame()
nicht synonym verwendet werden können, um das gleiche Ergebnis zu erhalten?
Die R-Dokumentation sagt das
weiter
tbl_df()
leitet das Argument anas_data_frame()
bedeutet das, dass tbl_df()
ein Wrapper oder Alias für as_data_frame()
ist? R Dokumentation scheint nichts über as.tibble()
zu sagen und ich habe vergessen, wo ich gelesen habe, dass es ein Alias für as_data_frame()
war. Außerdem ist anscheinend as_tibble()
ein weiterer Alias für as_data_frame()
.
Wenn diese vier Funktionen wirklich alle die gleiche Funktion haben, was ist der Sinn, wenn man einer Funktion vier verschiedene Namen gibt? Ist das nicht verwirrender als hilfreich?
Um Ihre Frage "ob es verwirrend ist" zu beantworten, denke ich ja.
as.tibble
und as_tibble
sind gleich; rufen Sie einfach die S3-Methode as_tibble
:
as_data_frame
und tbl_df
sind nicht genau gleich; tbl_df
ruft as_data_frame
auf:
Hinweis tbl_df
ist in dplyr
, während as_data_frame
im Paket tibble
ist:
aber natürlich ruft es die gleiche Funktion auf, also sind sie "die selben" oder Aliase wie du sagst.
Nun können wir die Unterschiede zwischen den generischen Methoden as_tibble
und as_data_frame
betrachten. Zuerst betrachten wir die Methoden von jedem:
Wenn Sie den Code für as_tibble
aufrufen, können Sie das tun siehe auch die Definitionen für viele der as_data_frame
-Methoden. as_tibble
definiert zwei zusätzliche Methoden, die nicht für as_data_frame
, as_tibble.ts
und as_tibble.poly
definiert sind. Ich bin nicht wirklich sicher, warum sie nicht auch für as_data_frame
definiert werden konnten.
as_data_frame
hat zwei zusätzliche Methoden, die beide in dplyr
: as_data_frame.tbl_cube
und as_data_frame.grouped_df
definiert sind.
as_data_frame.tbl_cube
verwende die schwächere Überprüfung von as.data.frame
(ja, ertragen Sie mit mir), um dann as_data_frame
:
, während as_data_frame.grouped_df
den übergebenen Datenframe nicht gruppiert.
Insgesamt scheint as_data_frame
eine zusätzliche Funktionalität gegenüber as_tibble
zu bieten, es sei denn, Sie haben mit ts
oder poly
Objekten zu tun.
Tags und Links r terminology dplyr tidyverse tibble