如何使用多个 类 仅提取 object 的 类 之一
How to extract just one of classes of object with multiple classes
假设我有一个名为“a”的小标题。它有三个 类:
class(a)
"tbl_df" "tbl" "data.frame"
如何只提取其中一个 类?
a$data.frame
无效。
另一个例子是 haven_labelled
object, b
有三个 类:
class(b)
"haven_labelled" "vctrs_vctr" "double"
如何只提取 b
的双部分?
class()
产生一个未命名的字符向量,您通常使用数字索引 x[i]
对其进行子集化,例如class(b)[3]
获得double"
.
但是您可以应用字符串匹配,并编写自己的 my_class()
函数,该函数基于 valid class 定义的向量。
valid <- c("data.frame", "double", "character")
my_class <- function(x) {k <- class(x);k[k %in% valid]}
my_class(a)
# [1] "data.frame"
my_class(b)
# [1] "double"
数据:
a <- tibble::as_tibble(data.frame())
b <- haven::labelled()
假设我有一个名为“a”的小标题。它有三个 类:
class(a)
"tbl_df" "tbl" "data.frame"
如何只提取其中一个 类?
a$data.frame
无效。
另一个例子是 haven_labelled
object, b
有三个 类:
class(b)
"haven_labelled" "vctrs_vctr" "double"
如何只提取 b
的双部分?
class()
产生一个未命名的字符向量,您通常使用数字索引 x[i]
对其进行子集化,例如class(b)[3]
获得double"
.
但是您可以应用字符串匹配,并编写自己的 my_class()
函数,该函数基于 valid class 定义的向量。
valid <- c("data.frame", "double", "character")
my_class <- function(x) {k <- class(x);k[k %in% valid]}
my_class(a)
# [1] "data.frame"
my_class(b)
# [1] "double"
数据:
a <- tibble::as_tibble(data.frame())
b <- haven::labelled()