Meine Forschung bisher
Die meisten Artikel diskutieren die Differenz zwischen class
und typeof
aber ich habe nicht viel auf die Unterschiede zwischen mode
, storage.mode
und typeof
gefunden.Was ist der Unterschied (in Bezug auf die Idee) von mode, storage.mode, typeof in R?
ich, dass mode
, storage.mode
und typeof
ähnlicher sind und class
ist anders. Ich bekomme, dass die beiden ehemaligen Call typeof
und ich verstehe, dass sie bestimmte Arten leicht anders behandeln (ich weiß sogar welche und wie). Was ich gerne wissen möchte, ist, was dahinter steckt.
Minimal Arbeitsbeispiel
library(data.table)
my_vector_boolean <- c(TRUE, FALSE, T, F)
my_vector_integer <- c(1L, 2L, 3L)
my_vector_character <- c("a", "b", "abc")
my_vector_factor <- as.factor(c("a", "b", "c"))
my_list <- list(a=1, b=2L, c="c")
my_matrix <- matrix(c(1,2,3, 11,12,13), nrow = 2, ncol = 3, byrow = TRUE,
dimnames = list(c("row1", "row2"), c("col1", "col2", "col3")))
my_dataframe <- data.frame(1, 1L:10L, sample(3, 10, replace = TRUE))
my_datatable <- data.table(1, 1L:10L, sample(3, 10, replace = TRUE))
datatypeslist <- list(
my_vector_boolean = my_vector_boolean,
my_vector_integer = my_vector_integer,
my_vector_character = my_vector_character,
my_vector_factor = my_vector_factor,
my_list = my_list,
my_matrix = my_matrix,
my_dataframe = my_dataframe,
my_datatable = my_datatable
)
multi.sapply <- function(...) {
arglist <- match.call(expand.dots = FALSE)$...
var.names <- sapply(arglist, deparse)
has.name <- (names(arglist) != "")
var.names[has.name] <- names(arglist)[has.name]
arglist <- lapply(arglist, eval.parent, n = 2)
x <- arglist[[1]]
arglist[[1]] <- NULL
result <- sapply(arglist, function (FUN, x) sapply(x, FUN), x)
colnames(result) <- var.names[-1]
return(result)
}
multi.sapply(datatypeslist, typeof, storage.mode, mode, class)
Was ich suche
Welche Art von Antwort, die ich bin nicht suchen. "mode
und storage.mode
Griff single
anders
Welche Art von antwort ich bin loking für: "typeof
ist der Datentyp, der in der verwendet wird zugrunde liegende C-Implementierung, während mode
ist der Datentyp, der ... und storage.mode
ist der Datentyp, der ... "
Zusätzlich würde ich eine Unterscheidung der Begriffe" Modus "und" Typ ", die in verwendet wurden Handbücher und Tutorials. Zum Beispiel wurde gesagt, dass typeof
den Modus eines Datenobjekts zurückgeben - was mir verwirrend erscheint.
Ich hoffe, dass diese Frage spezifisch/klar genug war. Bitte sagen Sie mir, was nicht klar war, bevor Sie abstimmen oder abstimmen.
Nun, [Hadley sagt das] (http://adv-r.had.co.nz/OO-essentials.html): "Sie haben vielleicht schon von' mode() 'und' storage gehört. Modus() '.Ich empfehle, diese Funktionen zu ignorieren, da sie nur Aliase der Namen sind, die von 'typeof()', ** zurückgegeben werden und nur für die S-Kompatibilität existieren. "Wenn ich das letzte Bit Ihres Posts richtig verstehe, nähert es sich dem Typ von der Antwort, die du willst, oder? Edit: Vielleicht hilft auch die R-Dokumentation: [hier] (http://stat.ethz.ch/R-manual/R-devel/doc/manual/R-lang.html#Objects) – Laterow
@Laterow: Ja, ich denke, das hilft sehr. Die R-Dokumentation, die du verlinkt hast, wurde von mir gelesen, aber nicht mit Frage beantwortet. Der Link zu Hadley ist nützlicher. Wenn du magst, kannst du machen eine Antwort von diesem. – Make42
@Laterow: Auch, vielleicht können Sie den Unterschied der Begriffe "Typ" und "Modus" in Tutorials erklären (siehe die Frage). – Make42