2015-06-26 4 views
1

У меня есть этот пример кадра данныхполучить пар, которые не являются явно

df <- data.frame(v1= factor(sample(x = c("y", "n"), size = 100, replace = T)), 
       v2= factor(sample(x = c("a", "b", "c"), size = 100, replace = T))) 

теперь я хочу уникальные пары (v1, v2), чтобы увидеть, какие уровни значение в v1 может взять в v2. я это простой случай, решение было бы

unique(expand.grid(df)) #maybe add sort 

но мой data.frame огромен и имеет более 1000 уровней фактора, моя машина падает, когда я это делаю. Есть ли другое решение?

ответ

1

Вот быстрый dplyr ответа:

df %>% group_by(v1) %>% 
     distinct(v2) 

Если вы хотите отсортировано, добавьте на:

%>% arrange(v1,v2) 

Кроме того, если реальные данные так же просто, как в этом примере (никаких других столбцов) вы можете позвонить:

distinct(df)