检测 data.frame 中的列是否为 .POSIXct 的可靠方法

标签 r datetime posixct

R 有 is.vector , is.list , is.integer , is.double , is.numeric , is.factor , is.character等为什么没有is.POSIXct , is.POSIXltis.Date ?

我需要一种可靠的方法来检测 POSIXct对象,和 class(x)[1] == "POSIXct"看起来真的……很脏。

最佳答案

我个人只会使用 inheritsjoran建议。您可以使用它来创建您自己的 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 

关于检测 data.frame 中的列是否为 .POSIXct 的可靠方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26412947/

相关文章:

r - R 中 apply 中的 equal() 行为

r - 强制 ggplot 比例开始,例如第一年,第一个月等

c# - 用于获取不带前导零的月份日期的字符串格式

r - lubridate 中的有效时区

RStudio 不读取路径中的非英文字符

r - 如何在 R twitter 更新中插入变量?

r - 将段值从 Power BI 传递到其数据源 脚本 R

python - 使用 Pandas 解析不同列上的日期和朱利安日

r - as.Date 不保留 R 中的小时和分钟信息

string - R从半标准字符串中提取时间分量