如何获得仅在两列中具有相同条目的特定观察

Ste*_*bua -3 r

v1=rep(c("a","b","c","d"),each=5)
v2=rep(c(10,12,9,7),each=5)
v3=c("y","y","w","y","y",rep(c("f"),times=5),rep(c("y"),times=4),"w",rep(c("k"),times=5))
v4=c("j","j","w","j","j",rep(c("q"),times=5),rep(c("l"),times=4),"w",rep(c("n"),times=5))
df=data.frame(v1,v2,v3,v4)

   v1 v2 v3 v4
1   a 10  y  j
2   a 10  y  j
3   a 10  w  w
4   a 10  y  j
5   a 10  y  j
6   b 12  f  q
7   b 12  f  q
8   b 12  f  q
9   b 12  f  q
10  b 12  f  q
11  c  9  y  l
12  c  9  y  l
13  c  9  y  l
14  c  9  y  l
15  c  9  w  w
16  d  7  k  n
17  d  7  k  n
18  d  7  k  n
19  d  7  k  n
20  d  7  k  n
> 
Run Code Online (Sandbox Code Playgroud)

我希望继续观察那些v3="w"v4="w"

   v1 v2 v3 v4
1   a 10  y  j
2   a 10  y  j
3   a 10  w  w
4   a 10  y  j
5   a 10  y  j
6   c  9  y  l
7   c  9  y  l
8   c  9  y  l
9   c  9  y  l
10  c  9  w  w
Run Code Online (Sandbox Code Playgroud)

我该怎么做呢

Rom*_*rik 5

请使用空格.除此之外的任何编码风格都会更好.关于你的问题,你需要做一些@agerom和@thotal建议的事情,并加以扭曲.v1从子集中收集这些值并使用它们进一步对data.frame进行子集化.

> df[df$v1 %in% unique(df[df$v4 == "w" & df$v3 == "w", ]$v1), ]
   v1 v2 v3 v4
1   a 10  y  j
2   a 10  y  j
3   a 10  w  w
4   a 10  y  j
5   a 10  y  j
11  c  9  y  l
12  c  9  y  l
13  c  9  y  l
14  c  9  y  l
15  c  9  w  w
Run Code Online (Sandbox Code Playgroud)