我有以下内容:
df1<-read.table(text=" Id Item Group Hard
Id Item Group Hard
12 B12 A Y
14 B6 B N
17 B5 D Y
33 B10 D Y
44 B12 D N
55 B6 D Y
75 B5 D Y
44 B10 A Y
33 B12 D N
21 B6 A Y
16 B12 A N
",header=TRUE)
我想使用ID匹配我的数据。如果要在“硬”列中为“Y”和“N”,我想获取B12;如果要在“硬”列中仅为“Y”,则希望获得B6。
我想得到下表:
id Item Group Hard
12 B12 A Y
44 B12 D N
55 B6 D Y
33 B12 D N
21 B6 A Y
16 B12 A N
我了解我需要告诉您我的努力,但是我进行了搜索,但找不到任何解决方案。谢谢你的帮助。
最佳答案
由于“Hard”列中只有“Y”,“N”,因此第一个条件只能在“Item”列中,第二个条件可以使用“Hard”中的“Y”
subset(df1, Item == 'B12'| (Item == 'B6' & Hard == 'Y'))
# Id Item Group Hard
#2 12 B12 A Y
#6 44 B12 D N
#7 55 B6 D Y
#10 33 B12 D N
#11 21 B6 A Y
#12 16 B12 A N
使用
dplyr
,将subset
更改为filter
library(dplyr)
filter(df1, Item == 'B12'| (Item == 'B6' & Hard == 'Y'))