В R каждый «объект» имеет a 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но не всегда. Дело в точке:
Специальная функция R typeof возвращает тип объекта R
Функциональный режим дает информацию о режиме объекта в смысле Беккера, Чемберса и Уилкса (1988) и более совместим с другими реализациями языка S.
Ссылка , которую я отправил выше , также содержит список всех нативного R basic types(векторы, списки и т.д.) и все compound objects(факторы и data.frames), а также некоторые примеры того , как mode, typeofи classсвязаны для каждого типа.
«В R каждый« объект »имеет режим и класс,« если они рассматриваются с точки зрения структуры классов S4 OOP. В S3 объектам могут не быть присвоены имена классов:oldClass(matrix(1:10, 2,5)) # NULL
Эрдоган CEVHER
6
typeна самом деле относится к различным структурам данных, доступным в R. Это обсуждение в руководстве R Language Definition может помочь вам начать работу с объектами и типами.
С другой стороны, classв R означает нечто иное, чем то, что вы могли ожидать. Из руководства по определению языка R (которое прилагается к вашей версии R):
2.2.4 Классы
В R есть продуманная система классов 1 , управляемая главным образом через атрибут class. Этот атрибут представляет собой вектор символов, содержащий список классов, от которых наследуется объект. Это составляет основу функциональности «универсальных методов» в R.
Доступ к этому атрибуту и управление им могут осуществляться практически без ограничений со стороны пользователей. Не проверяется, действительно ли объект содержит компоненты, ожидаемые методами класса. Таким образом, изменение атрибута класса должно выполняться с осторожностью, и когда они доступны, предпочтение следует отдавать конкретным функциям создания и принуждения.
Ответы:
В R каждый «объект» имеет a
mode
и aclass
. Первый представляет, как объект хранится в памяти (числовой, символьный, список и функция), а второй представляет его абстрактный тип. Например: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
basic types
(векторы, списки и т.д.) и всеcompound objects
(факторы и data.frames), а также некоторые примеры того , какmode
,typeof
иclass
связаны для каждого типа.источник
oldClass(matrix(1:10, 2,5)) # NULL
type
на самом деле относится к различным структурам данных, доступным в R. Это обсуждение в руководстве R Language Definition может помочь вам начать работу с объектами и типами.С другой стороны,
class
в R означает нечто иное, чем то, что вы могли ожидать. Из руководства по определению языка R (которое прилагается к вашей версии R):источник