r - Dplyr select_和starts_with对变量列表中的多个值

标签 r select dplyr startswith

我正在从不同位置的不同传感器收集数据,数据输出类似于:

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

问题是(我认为)类似于:Using select_ and starts_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_ and starts_with on multiple values in a variable list part 2

最佳答案

我们可以使用正则表达式

df %>% 
   select(matches(paste(Findsensor, collapse="|")))

关于r - Dplyr select_和starts_with对变量列表中的多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45357806/

相关文章:

r - 按列中非零元素的数量对 data.frame 进行排序

MySQL 基本选择查询

r - 过滤包含特定字符串的行

r - 使用点-点时为 data.table 赋值

r - R中的as.h2o()将文件上传到h2o环境需要很长时间

php - 从多个表中加速 SELECT

javascript - 选择一个项目或链接

r - 使用 dplyr 对多列求和

R 减去基于类别的值和日期 tidyverse-way

r - 使用grep帮助在R中子集数据帧