这是我之前的问题的延续:Dplyr select_ and starts_with on multiple values in a variable list
我正在从不同位置的不同传感器收集数据,数据输出类似于:
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),"Sensor1a Pressure"=c(1001, 1000, 1002, 1004, 1000), "Sensor2 Temp"=c(15,18,15,14,19),"Sensor2 Pressure"=c(1001, 1000, 1002, 1004, 1000), "Sensor2 DewPoint"=c(10,11,10,9,12),"Sensor2 Humidity"=c(90, 100, 90, 100, 80))
问题(我认为)类似于:使用 select_ 和 starts_with R 或 使用 dplyr基于多个字符串选择列
我想例如按位置搜索传感器,所以我有一个列表来搜索数据框,还包括时间戳。但是当我搜索多个传感器(或传感器类型等)时,搜索就会崩溃。有没有办法使用 dplyr(NSE 或 SE)来实现这一点?
FindLocation = c("date", "Sensor1", "Sensor2")
df %>% select(matches(paste(FindLocation, collapse="|"))) # works but picks up "Sensor1a" and "DewPoint" and "Humidity" data from Sensor2
我还想添加混合搜索,例如:
FindLocation = c("Sensor1", "Sensor2") # without selecting "Sensor1a"
FindSensor = c("Temp", "Pressure") # without selecting "DewPoint" or "Humidity"
我希望选择将 FindSensor 与 FindLocation 结合起来,并为 Sensor1 和 Sensor2 选择温度和压力数据(不选择 Sensor1a)。返回带有数据和列标题的数据框:
日期、传感器 1 温度、传感器 1 压力、传感器 2 温度、传感器 2 压力
再次感谢!