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="|")))