r - 如何仅提取具有多个类的对象类之一
问题描述
假设我有一个名为“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()
推荐阅读
- javascript - 何时使用 call 或在 JavaScript 中使用 call 有什么好处?
- python-3.x - 从被调用函数访问类属性?
- sap-cloud-sdk - 使用 SAP Cloud SDK 生成的 VDM 获取导航属性
- scala - Databricks - 尝试在单元格之间捕获
- javascript - 使用fabric js在画布中进行多项选择时过滤选择
- boolean - 线性规划中的布尔表达式
- json - 解析 curl 输出
- html - 如何使用 CSS 从下到上显示/填充 div 以获得以下效果
- jenkins-pipeline - 如何在詹金斯管道中获得覆盖率
- perl - 省略参数时如何让子使用 $_?