Почему класс () класса Sys.time () имеет длину 2? - PullRequest
0 голосов
/ 20 января 2019

class() всех элементов, с которыми я столкнулся в R, имеет длину 1.

Некоторые примеры

library(dplyr)

"string" %>% class %>% length
# [1] 1

123 %>% class %>% length
# [1] 1

0.234 %>% class %>% length
# [1] 1

Sys.Date() %>% class %>% length
# [1] 1

Но class() из Sys.time() (чтосамо по себе, как и в приведенных выше примерах, длина 1) равна длине 2

Sys.time() %>% class %>% length
# [1] 2

Почему?

1 Ответ

0 голосов
/ 20 января 2019

https://stat.ethz.ch/R-manual/R-devel/library/base/html/class.html стоит чтения

Но, по сути, способность объектов иметь несколько классов позволяет изменять их поведение в определенных ситуациях, поскольку порядок вектора классов определяет порядок вкакие методы ищутся.

В случае, если вы наблюдали, что простые объекты имеют тенденцию иметь единственный класс.

Sys.time() возвращает временную метку, которая немного сложнее, реализуются различные методыдля классов, и они могут отличаться.Поэтому, если бы кто-то попробовал объект в контексте, где метод существует только во втором классе, он использовал бы метод второго класса.

Чтобы просмотреть методы, попробуйте следующее:

methods(class = "POSIXt")
methods(class = "POSIXct")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...