2016-03-24 20 views
2

Dplyr belirtmenin bir yolu var: ayrı olmayan tüm sütun adlarını standart dışı değerlendirmeye başvurmadan kullanmalı mıyım?R dplyr - tüm sütunları birbirinden bağımsız

df <- data.frame(a=c(1,1,2),b=c(1,1,3)) 

df %>% distinct(a,b,.keep_all=FALSE)   # behavior I'd like to replicate 

df %>% distinct(everything(),.keep_all=FALSE) # with syntax of this form 
+0

% d>% distinct() ', istediğiniz şeyi verir mi? – sboysel

+0

Ne yazık ki değil. Veri çerçevesini, doğru sonucu elde etmek için kullanılan tek argüman olarak geçirdiğime inanıyorum, ancak son sürümlerde, farklı işlevlerde değişiklikler görüldü. Şu anda: "Hata: Hiçbir değişken seçili değil" –

+0

'df%>% unique', en tatmin edici cevap olmasa da alternatif olarak çalışır. –

cevap

2

vs yapabilirsiniz aşağıdaki kodu ile ayrı tüm sütunlar.

library(dplyr) 
library(data.table) 

df <- data_frame(
    id = c(1, 1, 2, 2, 3, 3), 
    value = c("a", "a", "b", "c", "d", "d") 
) 
# A tibble: 6 × 2 
# id value 
# <dbl> <chr> 
# 1  1  a 
# 2  1  a 
# 3  2  b 
# 4  2  c 
# 5  3  d 
# 6  3  d 

# distinct with Non-Standard Evaluation 
df %>% distinct() 

# distinct with Standard Evaluation 
df %>% distinct_() 

# Also, you can set the column names with .dots. 
df %>% distinct_(.dots = names(.)) 
# A tibble: 4 × 2 
# id value 
# <dbl> <chr> 
# 1  1  a 
# 2  2  b 
# 3  2  c 
# 4  3  d 

# distinct with data.table 
unique(as.data.table(df)) 
# id value 
# 1: 1  a 
# 2: 2  b 
# 3: 2  c 
# 4: 3  d