具有POSIXct格式的一列时间的内置数据帧

时间:2019-02-11 22:54:28

标签: r

是否可以编写一个函数来搜索R的内置数据帧存储库,以确定是否包含POSIXct类的列?

1 个答案:

答案 0 :(得分:1)

似乎所有内置数据集中都没有POSIXct列。正如@Uwe上面建议的那样, nycflights13 可能是可行的方式...

# function to determine if a dataset has a POSIX.ct column
has_posixct <- function(data) {
  any(vapply(data, inherits, FUN.VALUE = logical(1), "POSIXct"))
}

has_posixct(mtcars)
#> [1] FALSE

has_posixct(nycflights13::flights)
#> [1] TRUE

# evaluates using name of dataset
has_posixct_name <- function(name) {
  data <- eval(as.symbol(name))
  has_posixct(data)
}

# names of built-in datasets
datanames <- ls("package:datasets")
str(datanames)
#>  chr [1:104] "ability.cov" "airmiles" "AirPassengers" "airquality" ...

# do any contain POSIXct?
any(vapply(datanames, has_posixct_name, FUN.VALUE = logical(1)))
#> [1] FALSE

reprex package(v0.2.1)于2019-02-11创建