【问题标题】:Dplyr select_ and starts_with on multiple values in a variable listDplyr select_ 和 starts_with 在变量列表中的多个值上
【发布时间】:2018-01-03 14:20:18
【问题描述】:

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

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

【问题讨论】:

标签: r select dplyr startswith


【解决方案1】:

我们可以使用正则表达式

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

【讨论】:

  • 谢谢你,这绝对是完美的例子。我可能会更新这个问题,以强调这种方法可能会失败但现在会使用这种方法的更微妙的变化!
  • @BhavShah 你能发个新问题吗
  • 谢谢!是的将作为一个新问题发布
猜你喜欢
  • 2018-01-04
  • 2018-11-09
  • 1970-01-01
  • 1970-01-01
  • 2016-04-08
  • 2018-08-30
  • 2020-07-05
  • 2018-04-23
  • 1970-01-01
相关资源
最近更新 更多