Dplyr select_ и запускается с несколькими значениями в списке переменных

Я собираю данные с разных датчиков в разных местах, вывод данных что-то вроде:

df<-data.frame(date=c(2011,2012,2013,2014,2015),"Sensor1 Temp"=c(15,18,15,14,19),"Sensor1 Pressure"=c(1001, 1000, 1002, 1004, 1000),"Sensor1a Temp"=c(15,18,15,14,19),"Sensor2 Temp"=c(15,18,15,14,19),"Sensor2 Pressure"=c(1001, 1000, 1002, 1004, 1000))

Проблема (я думаю) похожа на: Использование select_ и start_with R

Я хочу искать датчики, например, по местоположению, поэтому у меня есть список для поиска по фрейму данных, а также указана временная метка. Но поиск падает, когда я ищу более одного датчика (или типа датчика и т. Д.). Есть ли способ использовать dplyr (NSE или SE) для достижения этой цели?

Findsensor = c("Sensor1") # one value
test <- df %>% select_(.dots = ~starts_with(Findsensor)) # works

Findsensor = c("date", "Sensor1", "Sensor2") # more values
test <- df %>% select_(.dots = ~starts_with(Findsensor)) # doesn't work

Это часть большого канала (следовательно, с использованием dplyr), и он хочет интегрировать выбор с Shiny, поэтому важна гибкость. Поиск может быть различными местоположениями или датчиками или некоторой другой переменной, основанной на поиске символов.

Спасибо заранее! Продолжение здесь: Dplyr select_ и sets_with для нескольких значений в списке переменных, часть 2

1 ответ

Решение

Мы можем использовать регулярное выражение

df %>% 
   select(matches(paste(Findsensor, collapse="|")))
Другие вопросы по тегам