我在R中遇到的所有元素的class()
的长度为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()
的{{1}}(本身,如上面的示例一样,长度为1)为长度2
Sys.time()
为什么?
答案 0 :(得分:2)
https://stat.ethz.ch/R-manual/R-devel/library/base/html/class.html值得一读
但是从本质上讲,对象具有多个类的能力允许它们的行为在某些情况下发生变化,因为类向量的顺序决定了搜索方法的顺序。
如果您已经观察到简单对象倾向于具有奇异类。
Sys.time()
返回的时间戳有点复杂,为类实现了各种方法,这些方法可能有所不同。因此,如果要在仅第二类中存在方法的上下文中尝试该对象,它将使用第二类方法。
要查看方法,请尝试以下操作:
methods(class = "POSIXt")
methods(class = "POSIXct")