假设我有一个名为“a”的小标题。它分为三个类:
class(a)
"tbl_df" "tbl" "data.frame"
如何仅提取其中一个类?
a$data.frame
不起作用。
另一个例子是一个haven_labelled
对象,b
它有三个类:
class(b)
"haven_labelled" "vctrs_vctr" "double"
我怎样才能只提取的双部分b
?
class()
产生一个未命名的字符向量,您通常使用数字 indeces 对其进行子集化x[i]
,例如class(b)[3]
获取double"
.
但是,您可以应用字符串匹配,并编写一个my_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()