2014-11-21 2 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

Смежные вопросы