Я хотел бы написать функцию gnl()
(getNamesLike), которая при оценке внутри извлечения может извлечь имя объекта, над которым выполняется extract
.Это возможно ?
Вот некоторый код желаемого поведения:
gnl <- function(pattern) {grepl(pattern,names(mtcars))}
mtcars[,gnl("a")] %>% head
# drat am gear carb
# Mazda RX4 3.90 1 4 4
# Mazda RX4 Wag 3.90 1 4 4
# Datsun 710 3.85 1 4 1
# Hornet 4 Drive 3.08 0 3 1
# Hornet Sportabout 3.15 0 3 2
# Valiant 2.76 0 3 1
gnl <- function(pattern) {grepl(pattern,names(cars))}
cars[,gnl("i"),drop=F] %>% head
# dist
# 1 2
# 2 10
# 3 4
# 4 22
# 5 16
# 6 10
Конечно gnl()
необходимо получить имена (mtcars, cars и т. Д.)...) динамически.
Самое меньшее, что я получаю:
gnl <- function(data,pattern) {
dplyr::select(data,dplyr::matches(pattern))
}
mtcars %>% gnl("a")