2016-09-20 73 views
-5

在R中,我试图用多个向量进行子集df的分类。这两个向量都是因素,我试图返回满足以下条件的子集向量。从名为Tail的列中,我想仅标识尾部是1级& 2.根据特定条件对多个矢量进行子集

例如,只有最后一个子集应该只包含尾部B-123和B-888,因为它们是仅有的两个尾部同时具有第1类& 2,而其余的尾部仅为第1类或第2类。我一直使用dplyr过滤器并指定条件,但尚未能产生正确的结果。

Tail 
B-123 
B-645 
B-938 
B-123 
B-645 
B-938 
B-888 
B-888 
---------- 
Class 
1 
2 
1 
2 
2 
1 
1 
2 

回答

0

好了,我不知道如果TailClass是相同的数据帧的一部分,或者是两个不同的载体。如果他们是两个不同的载体,也许你可以合并两个向量的数据帧

df <- data.frame(Tail = as.character(Tail), Class = as.character(Class)) 

,然后用dplyr你可以试试,

library(dplyr) 
df %>% 
    group_by(Tail) %>% 
    summarise(uniq=n_distinct(Class)) %>% 
    filter(uniq ==2) 

# Tail uniq 
# (fctr) (int) 
#1 B-123  2 
#2 B-888  2 
+0

是的,他们是同一DF的一部分。不过,我正在尝试筛选具有1类和2类特殊尾巴的不仅仅是2类。希望这是有道理的。感谢您的尝试。 – Nick

+0

@Nick您是否尝试过提供的解决方案?它应该工作。 –

+1

是的,谢谢你的工作 – Nick