Вы можете получить ls()
и проверить класс всего.Это может быть не особенно эффективно, так как фильтрует после ls()
, а не внутри.
# populate global environment with some vars.
rm(list=ls())
a <- 1
b <- 2
c <- 'foo'
d <- 'asdf'
lst <- ls()
# return everything 'numeric':
lst[sapply(lst,function(var) any(class(get(var))=='numeric'))]
# 'a' 'b'
get(var)
получает переменную, соответствующую строке в var
, поэтому, если var
равно "a"
, то get(var)
возвращает 1 (значение переменной a
).
Как отмечает @VincentZoonekynd ниже - объекты могут иметь несколько классов.Soo class(some_xts_object)
равно c("xts","zoo")
- вышеупомянутый метод вернет some_xts_object
, если вы ищете xts
объектов, но также , если вы ищете zoo
объектов.