通过匹配名称提取特定值

时间:2021-03-02 16:43:32

标签: r

我有一个像这样的数据框:

name="xx_01"

data_1<- data.frame(name=c("xx_01","xx_02","xx_03"), start_time=c("2015-01-06 00:01:00", "2015-01-07 05:01:01","2015-01-08 10:01:02"), end_time=c("2015-01-07 00:01:00", "2015-01-08 05:01:01","2015-01-09 05:01:02"))

data_1$start_time <- as.POSIXct(data_1$start_time,format="%Y-%m-%d %H:%M:%S", tz="UTC") data_1$end_time <- as.POSIXct(data_1$end_time,format="%Y-%m-%d %H:%M:%S", tz="UTC")

如何提取与 data_1 中的名称列匹配的任何给定名称的开始和结束时间?谢谢。

1 个答案:

答案 0 :(得分:0)

由于字符串的对象名称('name')与列名称相同,我们可以转义(!!)以强制它检查全局环境中的对象而不是数据集中的列

library(dplyr)
data_1 %>% 
  filter(name == !! name) %>% 
  select(-name)
#        start_time            end_time
#1 2015-01-06 00:01:00 2015-01-07 00:01:00