2014-11-21 32 views
0

我有個字符的某些列,例如:如何檢查R中字符列的子組是否不同?

V1 V2 group 
B C 1 
B C 1 
B C 1 
A C 2 
A A 2 
A A 2 
在數據幀

(稱之爲DF)中的R其也通過一個因子2級水平1和2分組,我想使用 '通過'或'lapply'來查看我是否可以計算出哪個列具有由組給出的對應組結構。在這種情況下,答案將是列V1。

我想這樣

by(df, df$group,...) 

,但不太確定如何實現這一點。我也看到了'相同'功能,但不知道是否有相反的功能?

感謝您的任何建議!

回答

1

可能

sapply(df[,1:2], function(x) all(as.numeric(factor(x, 
          levels=unique(x)))==df$group)) 
# V1 V2 
#TRUE FALSE 

或者在這個例子中

!colSums((df[,1:2]=='A')+1!=df$group) 
# V1 V2 
#TRUE FALSE 

或者你可以使用

!rowSums(aggregate(.~ group, df, FUN=function(x) length(unique(x)))[,-1]!=1) 
#[1] TRUE FALSE 
+0

謝謝,我會去看看它是如何工作吧! – user1637359 2014-11-21 17:30:42

相關問題