R 根据列中的特定值按时间提取行

R 根据列中的特定值按时间提取行,r,time,rows,data-extraction,R,Time,Rows,Data Extraction,我有一个数据框,看起来像: 日期 v1 v2 2000/8/10 s 2600 2000/8/10 s 500 2000/8/10 s 3500 2001/11/12 B 2000 2001/11/22 B 1000 2001/11/22 s 1000 2001/12/06 B 1000 2001/12/06 B 1500 2001/12/06 B 1000 2001/12/07 s 2000 2001/12/07 B 4000 您可以选择既有'S'又有'B'的日期 library(dplyr)

我有一个数据框,看起来像:

日期 v1 v2 2000/8/10 s 2600 2000/8/10 s 500 2000/8/10 s 3500 2001/11/12 B 2000 2001/11/22 B 1000 2001/11/22 s 1000 2001/12/06 B 1000 2001/12/06 B 1500 2001/12/06 B 1000 2001/12/07 s 2000 2001/12/07 B 4000
您可以选择既有
'S'
又有
'B'
日期

library(dplyr)

df %>%
  group_by(Date) %>%
  filter(all(c('S', 'B') %in% v1)) %>%
  ungroup

#  Date       v1       v2
#  <chr>      <chr> <int>
#1 2001/11/22 B      1000
#2 2001/11/22 S      1000
#3 2001/12/07 S      2000
#4 2001/12/07 B      4000
数据

df <- structure(list(Date = c("2000/8/10", "2000/8/10", "2000/8/10", 
"2001/11/12", "2001/11/22", "2001/11/22", "2001/12/06", "2001/12/06", 
"2001/12/06", "2001/12/07", "2001/12/07"), v1 = c("S", "S", "S", 
"B", "B", "S", "B", "B", "B", "S", "B"), v2 = c(2600L, 500L, 
3500L, 2000L, 1000L, 1000L, 1000L, 1500L, 1000L, 2000L, 4000L
)), row.names = c(NA, -11L), class = "data.frame")

df您可以选择
日期
,其中既有
'S'
又有
'B'

library(dplyr)

df %>%
  group_by(Date) %>%
  filter(all(c('S', 'B') %in% v1)) %>%
  ungroup

#  Date       v1       v2
#  <chr>      <chr> <int>
#1 2001/11/22 B      1000
#2 2001/11/22 S      1000
#3 2001/12/07 S      2000
#4 2001/12/07 B      4000
数据

df <- structure(list(Date = c("2000/8/10", "2000/8/10", "2000/8/10", 
"2001/11/12", "2001/11/22", "2001/11/22", "2001/12/06", "2001/12/06", 
"2001/12/06", "2001/12/07", "2001/12/07"), v1 = c("S", "S", "S", 
"B", "B", "S", "B", "B", "B", "S", "B"), v2 = c(2600L, 500L, 
3500L, 2000L, 1000L, 1000L, 1000L, 1500L, 1000L, 2000L, 4000L
)), row.names = c(NA, -11L), class = "data.frame")
df