Rには_is.vector
_、_is.list
_、_is.integer
_、_is.double
_、_is.numeric
_、_is.factor
_、_is.character
_などがあります。なぜないのですか。 _is.POSIXct
_、_is.POSIXlt
_または_is.Date
_?
POSIXct
オブジェクトを検出するための信頼できる方法が必要ですが、class(x)[1] == "POSIXct"
は本当に...汚いようです。
私は個人的にはinherits
を joran の提案どおりに使用します。これを使用して、独自のis.POSIXct
関数を作成できます。
# functions
is.POSIXct <- function(x) inherits(x, "POSIXct")
is.POSIXlt <- function(x) inherits(x, "POSIXlt")
is.POSIXt <- function(x) inherits(x, "POSIXt")
is.Date <- function(x) inherits(x, "Date")
# data
d <- data.frame(pct = Sys.time())
d$plt <- as.POSIXlt(d$pct)
d$date <- Sys.Date()
# checks
sapply(d, is.POSIXct)
# pct plt date
# TRUE FALSE FALSE
sapply(d, is.POSIXlt)
# pct plt date
# FALSE TRUE FALSE
sapply(d, is.POSIXt)
# pct plt date
# TRUE TRUE FALSE
sapply(d, is.Date)
# pct plt date
# FALSE FALSE TRUE
is()
を試すことができます。これがlubridate
関数is.Date
およびis.POSIX*
とにかく頼ります。
x <- Sys.time()
class(x)
# [1] "POSIXct" "POSIXt"
is(x, "Date")
#v[1] FALSE
is(x, "POSIXct")
# [1] TRUE
y <- Sys.Date()
class(y)
# [1] "Date"
is(y, "POSIXct")
# [1] FALSE
is(y, "Date")
# [1] TRUE