我有一些字符列,例如:
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,...)
但不太确定如何实现这一点。我也见过相同的'功能,但不知道对面是否可用?
感谢您的任何建议!
答案 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