Ответ 1
В R каждый "объект" имеет mode
и a class
. Первый представляет, как объект хранится в памяти (числовой, символ, список и функция), а позднее представляет его абстрактный тип. Например:
d <- data.frame(V1=c(1,2))
class(d)
# [1] "data.frame"
mode(d)
# [1] "list"
typeof(d)
# list
Как вы можете видеть, кадры данных хранятся в памяти как list
, но они завернуты в объекты data.frame
. Последний позволяет использовать функции-члены, а также функции перегрузки, такие как print
с пользовательским поведением.
typeof
(storage.mode
) обычно дает ту же информацию, что и mode
, но не всегда. Пример:
typeof(c(1,2))
# [1] "double"
mode(c(1,2))
# [1] "numeric"
Обоснование этого можно найти здесь:
Функция R typeof возвращает тип объекта R
Функция mode предоставляет информацию о режиме объекта в смысле Becker, Chambers и Wilks (1988) и более совместима с другими реализациями языка S
Ссылка, которую я опубликовал выше, также содержит список всех собственных R basic types
(векторов, списков и т.д.) и всех compound objects
(факторов и data.frames), а также некоторые примеры того, как mode
, typeof
и class
связаны для каждого типа.