我需要在R数据框架中创建一个新类。例如,
asd <- data.frame(a = c("A", "B"), b = c("D","S"))
class(asd$b) <- "New"
如你所见,我已经创建了一个新类" new "。但是当我做下面的操作时,我没有得到
asd %>% select_if(is.New)
Error in is_logical(.predicate) : object 'is.New' not found
预期输出
b
1 D
2 S
仅仅因为你创建了一个类"New"并不意味着还创建了一个名为is.New
的函数。is()
的通用形式将类名作为字符值。你可以用
asd %>% select_if(~is(., "New"))
如果你想创建is.New
你可以输入
is.New <- function(x) is(x, "New")
asd %>% select_if(is.New)
我们可以使用select
和where
library(dplyr)
asd %>%
select(where(~ is(., "New")))
与产出
b
1 D
2 S