2016-09-20 74 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