如何检查R中字符列的子组是否不同?

时间:2014-11-21 17:03:00

标签: r difference

我有一些字符列,例如:

V1 V2 group
B  C  1
B  C  1
B  C  1
A  C  2
A  A  2
A  A  2

在R中的数据框(称为df)中,它也按2级1和2的因子分组,我想使用 '由'或者' lapply'看看我是否可以确定哪个列具有由组给出的相应组结构。在这种情况下,答案将是V1列。

我在想像

这样的东西
by(df, df$group,...)

但不太确定如何实现这一点。我也见过相同的'功能,但不知道对面是否可用?

感谢您的任何建议!

1 个答案:

答案 0 :(得分: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